Google Cloud (GCP Cloud Run)

Cloud Runを使用してGoogle Cloudプラットフォーム上でKeeperオートメーターサービスを実行

概要

本ガイドでは、特にGCP Cloud Runサービスを使用してGoogle CloudでKeeperオートメーターサービスを実行する手順について取り扱います。オートメーターは、KeeperのインフラストラクチャIPへのアクセスを制限するために、Google Armorサービスによっても保護されています。

1. プロジェクトを作成する

Google Cloud コンソール (https://console.cloud.google.com) から新しいプロジェクトを作成します。

新しいプロジェクトを作成する

次に、この新しいプロジェクトで[プロジェクトを選択]をクリックします。

2. クラウドシェルを起動する

本ページでは、ウェブインターフェースからGoogle Cloud Shellを使用します。クリックして Cloud Shellを有効にするか、ローカルマシンにインストールしてください。

  • Project IDをメモしておきます。この場合はkeeper-automator-439714となります。このプロジェクトIDは後続のコマンドで使用されます。

まだお済みでない場合は、有効な請求先アカウントをプロジェクトにリンクする必要があります。これは、Google Cloudユーザーインターフェースの[お支払い]メニューから実行します。

4. Automator Configキーを作成する

Cloud Shellから、URLエンコード形式で256ビットのAESキーを生成します。

openssl rand -base64 32

キーの例:6C45ibUhoYqkTD4XNFqoZoZmslvklwyjQO4ZqLdUECs=

結果のキーをKeeperに保存します。これは、コンテナをデプロイするときに環境変数として使用されます。このキーにより、起動時に一時的なコンテナが構成されるようになります。

5. アーティファクトレジストリを有効にする

gcloud services enable run.googleapis.com artifactregistry.googleapis.com

6. 地域を選択

サービスを実行するには、地域を選択する必要があります。使用可能な地域コードは、以下のコマンドを使用して確認できます。

gcloud run regions list

この例では、us-east1を使用します。

7. Automatorサービス用のArtifact Registryを作成する

以下の 2 つのコマンドを実行し、「us-east1」を手順6の値に置き換えます。

gcloud artifacts repositories create keeper-automator-repo \
    --repository-format=docker \
    --location=us-east1 \
    --description="Artifact registry for Keeper Automator service"
gcloud auth configure-docker us-east1-docker.pkg.dev

8. AutomatorコンテナをArtifact Registryにアップロードする

次の内容を含むcloudbuild.yamlというファイルを作成し、文字列us-east1を手順6の地域に置き換えます。その他の内容はすべてそのままにします。

Cloudbuild.yaml
steps:
  - name: 'gcr.io/cloud-builders/docker'
    args: ['pull', 'keeper/automator:latest']
  - name: 'gcr.io/cloud-builders/docker'
    args: [
      'tag',
      'keeper/automator:latest',  
      'us-east1-docker.pkg.dev/$PROJECT_ID/keeper-automator-repo/keeper-automator:latest'
    ]
  - name: 'gcr.io/cloud-builders/docker'
    args: [
      'push',
      'us-east1-docker.pkg.dev/$PROJECT_ID/keeper-automator-repo/keeper-automator:latest'
    ]
images:
  - 'us-east1-docker.pkg.dev/$PROJECT_ID/keeper-automator-repo/keeper-automator:latest'
  • us-east1手順6の地域に置き換えます

このファイルをCloud Shellユーザーインターフェースからアップロードするか、Cloud Shellでテキストファイルを作成します。

Cloud Shellから、以下を実行します。

gcloud services enable cloudbuild.googleapis.com

次にビルドを実行します。

gcloud builds submit --config cloudbuild.yaml

これにより、最新のオートメーターコンテナがGoogle Artifact Registryに同期されます。

9. Automatorサービスをデプロイする

以下のコマンドで、Artifact RegistryからKeeperオートメーターサービスをGoogle Cloud Runにデプロイします。このサービスは、内部アクセスとロードバランサのみに制限されています。

gcloud run deploy keeper-automator \
    --image us-east1-docker.pkg.dev/[PROJECT ID]/keeper-automator-repo/keeper-automator:latest \
    --platform managed \
    --region us-east1 \
    --allow-unauthenticated \
    --ingress internal-and-cloud-load-balancing \
    --min-instances 1 \
    --max-instances 2 \
    --set-env-vars "AUTOMATOR_CONFIG_KEY=XXX,AUTOMATOR_PORT=8080,DISABLE_SNI_CHECK=true,SSL_MODE=none"

以下の点にご注意ください。

  • [PROJECT_ID]は手順2のProject IDに置き換えます。

  • XXXを上記の手順 3 で作成した構成キーに置き換えます。

  • AUTOMATOR_PORTがコンテナにポート8080をリッスンするように指示します。

  • SSL_MODEでSSL接続をロードバランサで終了できるようになります。

  • DISABLE_SNI_CHECKでロードバランサーの背後でリクエストを完了できるようになります。

  • インスタンスの最小数は 1 であり、これはほとんどの環境で許容されます。

  • 最小/最大が設定されていない場合、サービスはインスタンスをゼロに減らし、最初のリクエストで起動します。

10. マネージド証明書の作成

Keeperシステムは、パブリックにルーティング可能なDNS名を介してオートメーターサービスと通信します。この例では、gcpautomator.lurey.comを使用しています。設定には、まずマネージドSSL証明書を作成する必要があります。以下はそのためのコマンドとなります。

gcloud compute ssl-certificates create automator-compute-certificate \
    --domains gcpautomator.lurey.com \
    --global
  • gcpautomator.lurey.comを任意の名前に置き換えてください。

11. サーバーレスネットワークエンドポイントグループを作成する

次のコマンドで、Cloud Run サービスを Google Cloud Load Balancer にリンクします。

gcloud compute network-endpoint-groups create keeper-automator-neg \
    --region us-east1 \
    --network-endpoint-type=serverless \
    --cloud-run-service keeper-automator
  • us-east1を手順5の Cloud Run サービスのリージョンに置き換えます。

12. NEGを使用するバックエンドサービスを作成する

これにより、Cloud Runサービスにリンクするバックエンドサービスが作成されます。

gcloud compute backend-services create keeper-automator-backend \
    --global \
    --protocol HTTP

13. バックエンドサービスにNEGをアタッチする

これにより、NEGがバックエンド サービスに接続されます。

gcloud compute backend-services add-backend keeper-automator-backend \
    --global \
    --network-endpoint-group keeper-automator-neg \
    --network-endpoint-group-region us-east1
  • us-east1手順6で指定した場所に置き換えます。

14. 受信トラフィックをバックエンドサービスに誘導するURLマップを作成する

gcloud compute url-maps create keeper-automator-url-map \
    --default-service keeper-automator-backend

15. HTTPSターゲットプロキシを作成し、オートメーター証明書をマップする

gcloud compute target-https-proxies create keeper-automator-target-proxy \
    --url-map keeper-automator-url-map \
    --ssl-certificates automator-compute-certificate

16. 静的IPアドレスを予約し、DNSエントリを割り当てる

gcloud compute addresses create keeper-automator-ip --global

IPアドレスを取得して、後で使用するためにメモしておきます。

gcloud compute addresses list

IPアドレスは有効な DNSにマッピングする必要があります。

DNSプロバイダで、IPを指すA-recordを設定します。

A-Record構成の例

タイプ

名前

TTL

A

gcpautomator.lurey.com

xx.xx.xx.xx

60

  • この手順は重要です。 目的のドメイン名が指定された IP アドレスを指していることを確かにしてください。 この手順は DNS プロバイダで直接実行する必要があります。

17. グローバル転送ルールを作成する

受信リクエストをターゲットプロキシに転送するためのグローバル転送ルールを作成します。

gcloud compute forwarding-rules create keeper-automator-forwarding-rule \
    --global \
    --target-https-proxy keeper-automator-target-proxy \
    --ports 443 \
    --address keeper-automator-ip

18. 特定のIPへのアクセスをロックダウンする

Keeperオートメーターサービスは、イングレス要件のページに記載の通り、必要な IP のみに制限する必要があります。

特定のIPアドレスへのアクセスを制限するCloud Armorセキュリティポリシーを作成しましょう。

gcloud compute security-policies create allow-specific-ips-policy --description "Allow specific IPs"

この手順では、こちらのページに記載のKeeperの米国データセンターのIPを接続します。必要に応じて追加のルールを作成してください。

gcloud compute security-policies rules create 1000 \
    --security-policy allow-specific-ips-policy \
    --src-ip-ranges 54.208.20.102,34.203.159.189 \
    --action allow
  • オートメーターサービスをテストできるように、外部IPをこのリストに追加することをお勧めします。

他のトラフィックを制限するために、デフォルトの「拒否」ルールも追加します。

gcloud compute security-policies rules create 2000 \
    --security-policy allow-specific-ips-policy \
    --action deny-404 \
    --src-ip-ranges '*'

最後に、Cloud Armorセキュリティポリシーをバックエンドサービスにアタッチします。

gcloud compute backend-services update keeper-automator-backend \
    --global \
    --security-policy allow-specific-ips-policy

この時点で、オートメーターサービスが実行され、サービスは Keeper インフラストラクチャにのみ公開されます。

次の手順では、Keeperコマンダーのユーティリティを使用して構成を完了します。

19. Keeperコマンダーにログイン

オートメーター設定の最終手順を実行するには、Keeperコマンダーが必要となります。コマンダーはどこからでも実行でき、サーバーにインストールする必要はありません。

コマンダーをインストールした後、Keeperコマンダーを起動するか、既存のターミナルからkeeper shellと入力してセッションを開いてから、loginコマンドを使用してログインします。オートメーターを設定するには、Keeper管理者かSSOノードを管理する権限を持つ管理者としてログインする必要があります。

$ keeper shell

My Vault> login admin@company.com

  _  __  
 | |/ /___ ___ _ __  ___ _ _ 
 | ' </ -_) -_) '_ \/ -_) '_|
 |_|\_\___\___| .__/\___|_|
 v16.x.xxx    |_|

 password manager & digital vault

Logging in to Keeper Commander
Enter password for admin@company.com
Password: ********************
Successfully authenticated with Master Password
Syncing...
Decrypted [58] record(s)

My Vault>

20. Automatorを作成する

automator createで始まる一連のコマンドを使用してオートメーターを作成します。

My Vault> automator create --name "My Automator" --node "Azure Cloud"

ノード名 (この場合は「Azure Cloud」) は、以下に見られるように管理コンソールから取得します。

オートメーター作成

コマンドの出力には、IDプロバイダからのメタデータを含むオートメーター設定が表示されます。

                    Automator ID: XXXX
                            Name: My Automator
                             URL: 
                         Enabled: No
                     Initialized: No
                          Skills: Device Approval

「URL」はまだ入力されていないことに注意してください。これは、オートメーターURLが入力されます。

以下のように、automator editコマンドを実行します。これにより、URLが設定され、スキル ( teamteam_for_userdevice) も設定されます。

automator edit --url https://gcpautomator.lurey.com --skill=team --skill=team_for_user --skill=device "My Automator"
  • 注: gcpautomator.lurey.comを手順15で作成したドメイン名に置き換えます。

次に、キーを交換します。オートメーター公開キーで暗号化されたエンタープライズ秘密キーが オートメーターに提供されます。

automator setup "My Automator"

新しい設定でオートメーターを初期化します。

automator init "My Automator"

サービスを有効にします。

automator enable "My Automator"

ユーザー体験のテスト

Keeperオートメーターがデプロイされましたので、エンドユーザー体験をテストできます。ユーザーが SSOのIDプロバイダで認証した後は、承認を求めるポップアップが表示されなくなります。

最も簡単にテストするには、Keeperウェブボルトをシークレットモードのウィンドウで開いて、クラウドSSOでログインします。デバイスの承認は求められなくなっています。


コンテナの更新

Keeperから新しいバージョンが利用可能になる際にGoogleのコンテナを更新するには、以下のコマンドを実行します。

  • 手順7を繰り返す。

  • 手順8を繰り返す。

サポートが必要な場合

サポートが必要な場合は、commander@keepersecurity.comまでメールでお問い合わせいただくか、サポートチケットを提出ください。

最終更新