Google Cloud環境のセットアップ

KeeperPAMで利用するためのGoogle Cloud環境の設定

Google Cloud環境の概要

概要

GCP環境内のリソースは、PAM設定レコードで構成されたサービスアカウントを使用して、Keeperゲートウェイから管理できます。必要に応じて、このサービスアカウントにドメイン全体の委任を設定すると、GCP検出で見つかったGoogle Workspaceユーザー (GCPプリンシパル) のパスワードを、Keeperゲートウェイでローテーションできるようになります。

対象となるGCPリソースへアクセスできるよう、サービスアカウントを適切に設定する必要があります。対応するサービスは次のとおりです。

  • Compute Engine

  • Cloud SQL

  • Cloud Resource Manager

  • 管理対象Microsoft Active Directory

さらに、Google Workspaceユーザーのパスワード変更を有効にするには、次の設定も必要です。

  • Google Workspace管理コンソールでドメイン全体の委任を有効化

  • スコープ: https://www.googleapis.com/auth/admin.directory.user

  • google_admin_email には、Workspaceでのユーザー管理権限が付与されていること

GCPプリンシパルのパスワードローテーションを有効にする手順の詳細については、以下の項目をご参照ください。

必要なサービスアカウントの設定

サービスアカウントは、ユーザーではなく、Compute Engineインスタンスなどのアプリケーションやコンピューティングワークロードで使用される特別なアカウントです。

KeeperPAMで使用するサービスアカウントには、以下の最小限の権限が必要です。

最小権限の原則を維持するため、GCP構成で指定するサービスアカウントには、上記の権限のみを付与してください。

設定手順の概要

  1. KeeperPAMなど、カスタムロールを作成します

  2. サービスアカウントを作成します

  3. 作成したカスタムロールをサービスアカウントに割り当てます

  4. サービスアカウント用の新しいJSON形式の秘密鍵を作成します

  5. ダウンロードしたファイルを保護のためKeeperボルトに保存します

このJSONファイルの内容を、Keeperボルト内のPAM構成レコードにある「サービスアカウントキー」フィールドにも追加します。


GCPユーザーパスワードローテーションのオプション設定

このセクションの手順に従うことで、KeeperPAMによるGoogle Workspace IDのパスワードローテーションを任意で有効化できます。

GCPリソースの検出時、システムはIAMポリシー内にある user: 接頭辞付きのユーザー (例: user:[email protected]) を識別します。これらは通常、GCPプロジェクト内で権限が付与されているGoogle Workspaceユーザーです。

これらのWorkspaceユーザーのパスワードをローテーションするには、サービスアカウントが以下の要件を満たしている必要があります。

  • Google Workspaceでドメイン全体の委任が有効化されていること

  • 適切なOAuthスコープで承認されていること

  • サービスアカウントが代理で使用する管理者メールアドレスが指定されていること

要件

  • サービスアカウントを含むGoogle Cloud Platformプロジェクト

  • Google Workspaceの管理者アクセス権

  • サービスアカウントのクライアントID (サービスアカウントの詳細画面で確認できます)

構成の手順

サービスアカウントでドメイン全体の委任を有効にする

  1. Google Cloud コンソールにアクセスします

  2. [IAM と管理][サービス アカウント] に移動します

  3. PAM構成で使用しているサービスアカウントを探します

  4. サービスアカウントをクリックして詳細を表示します

  5. [詳細] タブを開きます

  6. [詳細設定] の中にある [ドメイン全体の委任] セクションを確認します

  7. [Google Workspaceのドメイン全体の委任を有効にする] をクリックします

  8. クライアントIDを控えておきます (次の手順で使用します)

Google Workspace 管理コンソールでサービスアカウントを承認する

  1. [セキュリティ][アクセスとデータ管理][API の制御] に移動します

  2. [ドメイン全体の委任] までスクロールします

  3. [ドメイン全体の委任を管理] をクリックします

  4. [新規追加] をクリックします

  5. クライアントID欄に、手順1で控えたクライアントIDを貼り付けます

  6. OAuthスコープ欄に次を入力します

  7. [承認] をクリックします

Google管理者メールアドレスの構成

Google管理者メールアドレスは、次の条件を満たすGoogle Workspaceユーザーアカウントです。

  • Google Workspaceの管理者権限を持っていること

  • 特にユーザー管理の権限が付与されていること

  • パスワード変更時に、サービスアカウントが代理で操作を行う際に使用するアカウントであること

管理者ユーザーを作成または特定する

オプションA: 既存のスーパー管理者を使用する

[email protected] など、既存のGoogle Workspaceスーパー管理者のメールアドレスを使用します。

オプションB: 専用のサービス管理者アカウントを作成する (推奨)

  1. Google Workspace 管理コンソール[ディレクトリ][ユーザー] に移動します

  2. [新しいユーザーを追加] をクリックします

  3. 次のようなユーザーを作成します

  4. 作成したユーザーに管理者ロールを割り当てます

    1. [ディレクトリ][ユーザー] に移動します

    2. 作成したユーザーをクリックします

    3. [管理者の役割と権限] をクリックします

    4. [ユーザー管理管理者] (必要に応じてスーパー管理者) を割り当てます


PAM構成レコードの設定

Keeperボルトで [シークレットマネージャー][PAM構成] に移動し、新しい [GCP PAM構成レコード] を作成します。以下の項目を設定します。

サービスアカウントキー (JSON形式)

サービスアカウントのセットアップ時に作成したキー ファイルです。形式は以下のとおりです。

Google管理者メールアドレス

この項目は、GCPサービスプリンシパルのローテーションを構成している場合にのみ必要です。


仕組み

GCPユーザーのパスワードをローテーションする際の処理は、次の流れで行われます。

  1. システムは、GCPのIAMポリシーからユーザー (例: user:[email protected]) を検出します

  2. パスワードローテーションの実行時に、次の処理が行われます。

    • JSONキーからサービスアカウントの認証情報を読み込みます

    • admin.directory.user スコープを使用して認証情報を要求します

    • Google 管理者メールアドレスを代理として使用する委任された認証情報を作成します

    • Google Admin Directory APIを使用して、ユーザーのパスワードを更新します

  3. パスワード変更は、対象のGoogle Workspaceユーザーに適用されます

必要な権限の概要

GCPプロジェクトの権限 (検出用)

GCPプロジェクト内でリソースを検出するため、サービスアカウントには次のIAM権限が必要です。

  • resourcemanager.projects.getIamPolicy (IAMポリシーからユーザーを検出するために使用します)

Google Workspaceの権限

サービスアカウントには以下が必要となります。

  • ドメイン全体の委任が有効化されていること

  • OAuthスコープ: https://www.googleapis.com/auth/admin.directory.user

Google管理者メールアドレスに指定するアカウントには、次の権限が必要です。

  • ユーザー管理管理者ロール (またはスーパー管理者)

トラブルシューティング

「No Google Admin email provided」エラー

原因 PAM構成レコードで google_admin_email フィールドが設定されていません。

対処方法 PAM構成レコードに管理者メールアドレスを追加してください。


「Permission denied」または「Forbidden」エラー

原因 ドメイン全体の委任が正しく構成されていません。

対処方法

  • サービスアカウントでドメイン全体の委任が有効になっていることを確認します

  • クライアントIDが Google Workspace 管理コンソール に正しく追加されていることを確認します

  • OAuthスコープ https://www.googleapis.com/auth/admin.directory.user が承認されていることを確認します

「Insufficient permissions」エラー

原因 Google管理者メールアドレスに十分な権限が付与されていません。

対処方法 管理者メールアドレスに ユーザー管理管理者 ロール、または スーパー管理者 ロールが付与されていることを確認してください。

「Invalid credentials」 または 「Authentication failed」エラー

原因 サービスアカウントキーが無効、または有効期限切れです。

対処方法

  • Google Cloud コンソールでサービスアカウントキーを再生成します

  • 新しいJSONキーを使用して、PAM構成レコードを更新します

ユーザーのパスワード変更は成功するが、ログインできない

原因 パスワードポリシーの要件を満たしていません。

対処方法 パスワード生成では、次の制約が適用されます。

  • 最低8文字

  • 小文字を1文字以上含む

  • 大文字を1文字以上含む

  • 数字を1文字以上含む

  • 次の記号のいずれかを1文字以上含む: !@#$%^&*()_+-=[]{}|

セキュリティのベストプラクティス

  1. 専用のサービス管理者アカウントを使用 個人の管理者アカウントではなく、本サービス専用のGoogle Workspaceユーザーを作成してください。

  2. サービスアカウントキーの配布を最小限に抑制 サービスアカウントキー (JSON) は、Keeperシークレットマネージャーのみに安全に保管してください。

  3. 管理者アクティビティを監視 サービスアカウントによる操作について、Google Workspaceの管理者監査ログを定期的に確認してください。

  4. サービスアカウントキーをローテーション 定期的にサービスアカウントキーを更新し、PAM構成レコードも併せて更新してください。

  5. 最小権限の原則を適用 追加の権限が必要な場合を除き、Super AdminではなくUser Management Adminロールのみを付与してください。

その他のリソース

  • Google Workspaceドメイン全体の委任ガイド

  • Google管理者SDK Directory API

  • サービスアカウント認証

最終更新