bridgeとは
bridgeは、ベースマキナからお客さまが持つデータベースやAPIへアクセスする際に中継する、認証機能付きのゲートウェイのことを指します。
bridgeの役割
bridgeはアクションを実行する際に必ず中継するAPIですが、セキュリティの観点で非常に重要な役割を担っています。
- 認証
- ネットワークセキュリティの担保
認証
bridgeを起動する際には、いくつかの環境変数を設定する必要があります。
bridgeはそのなかで指定される変数と、ベースマキナ上から送信されたリクエストのヘッダーに含まれる認証情報を照合し、正規のリクエストかどうかを検証します。
ネットワークセキュリティの担保
当bridgeは、ベースマキナ社がホスティングするbridgeのサーバーをご利用いただくか、お客さま自身のクラウドまたはオンプレミス環境にbridgeを設置していただくかの2種類の形での設置方法をお選びいただけます。
ベースマキナのAPIからのアクション実行リクエストは、固定IPを介して送信されます。そのため、固定IPからのアクセスだけを通すためにファイアーウォールの設定をしていただくと最低限のアクセス制限を行なうことができます。
さらにお客さま自身でbridgeを設置した場合には、セキュリティグループなどの設定をbridgeに対して適用することで、ベースマキナのAPIが非公開のデータベースやAPIに直接アクセスしないように多重にセキュリティを強化できます。
bridgeのセットアップ
接続設定
bridgeへの接続はベースマキナからHTTP(HTTPS)を用いて確立されます。
bridgeの接続設定は環境ごとに保存されます。 選択中の環境以外で接続情報を保存したい場合は、環境を切り替えてから設定を保存してください。
bridgeの設定
コンテナイメージを以下で配布しております。対応アーキテクチャはlinux/amd64および、linux/arm64です。
- ghcr.io/basemachina/bridge (opens in a new tab)
- gcr.io/basemachina/bridge (opens in a new tab)
- public.ecr.aws/basemachina/bridge (opens in a new tab)
api.basemachina.comへのリクエストを自社のネットワーク設定で許可してください。 bridgeで行なわれるリクエストの検証に必要な公開鍵を取得するためにアクセスします。
任意で次の環境変数をご利用いただけます。
# 認可処理に利用する公開鍵を更新する間隔です。
# 時間として指定します。有効な単位は "ns", "us" (or "µs"), "ms", "s", "m", "h" です。
export FETCH_INTERVAL=1h
# 認可処理に利用する公開鍵を更新するタイムアウトです。
# 時間として指定します。有効な単位は "ns", "us" (or "µs"), "ms", "s", "m", "h" です。
export FETCH_TIMEOUT=10s
# bridge を HTTP としてサーブするために利用します。4321 以外を指定してください。
# 文字列として指定します。
export PORT=8080
# 認可処理に利用します。設定されると指定されたテナント ID 以外からのリクエストを拒否します。
# 文字列として指定します。
# TENANT_IDは設定ページよりご確認ください。
export TENANT_ID=XXXXXX
推奨される動作環境
前述の通り、bridgeはコンテナイメージを提供しています。それらを用いてbridgeを起動する場合、以下の環境でのセットアップを推奨します。
- AWSの場合: ECS Fargate
- GCPの場合: Cloud Run
他にも起動方法はございますが、多くのお客さまが上記の環境でbridgeを利用されています。
ヘルスチェック
bridgeを起動するインスタンスのヘルスチェックを行ないたいケースを想定して、/ok
というGETメソッドのエンドポイントを用意しております。
こちらのパスにリクエストを投げていただくことで、bridgeが正常に動作しているかを確認できます。
IPのホワイトリスト
ベースマキナから接続を許可するために以下のIPアドレスをホワイトリストに追加してください。
34.85.43.93
接続チェック
「bridgeへの接続設定」と同じネットワーク設定画面上で、接続チェックを行なうことができます。 お使いのデータベースやAPIへ、bridgeを経由してTCPで接続できるか確認したい場合にご利用ください。 プライベートなDNSによる名前解決が意図通りに行なわれるかの確認などにご活用いただけます。
接続チェックは、ネットワーク設定を行なう権限を持つユーザーのみが実行できます。