View a markdown version of this page

Google Drive のサービスアカウント認証を設定する - Amazon Bedrock

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Google Drive のサービスアカウント認証を設定する

サービスアカウント認証 (SERVICE_ACCOUNT) は、Google Drive データソースに推奨される方法です。Google クラウドサービスアカウントはプライベートキーで認証し、Google Workspace 管理者ユーザーになりすますことで、ドメイン内のすべてのユーザーの Drive コンテンツをクロールします。これは、ドキュメントレベルのアクセスコントロール (ACLs) をサポートする唯一の方法です。

管理アクセスが必要

この設定では、Google Workspace 管理者が APIs の有効化、サービスアカウントの作成、ドメイン全体の委任の設定、委任された管理者ユーザーの作成を行う必要があります。 AWS 側には、 AWS Secrets Manager と IAM への管理者アクセスが必要です。

ステップ 1: Google Cloud プロジェクトを作成する

  1. Google Cloud コンソールを開きます。

  2. ページ上部のプロジェクトセレクターから、新しいプロジェクトを選択します。

  3. プロジェクト名を入力し、作成を選択します。

  4. プロジェクトを作成したら、プロジェクトセレクタからプロジェクトに切り替えます。

ステップ 2: 必要な APIs

  1. Google クラウドコンソールのナビゲーションメニューで、APIsとサービスライブラリを選択します。

  2. 次の各 APIs。

    • Google Drive API

    • Google Drive アクティビティ API

    • 管理者 SDK API

ステップ 3: サービスアカウントを作成する

  1. ナビゲーションメニューで、APIsとサービス、認証情報を選択します

  2. 認証情報の作成サービスアカウントを選択します。

  3. 名前 ( などbedrock-google-drive-connector) とオプションの説明を入力し、完了 を選択します。

  4. 認証情報ページで、先ほど作成したサービスアカウントを選択します。

  5. 詳細タブで、一意の ID をコピーします。ステップ 5 でこれを使用して、ドメイン全体の委任を付与します。

ステップ 4: プライベートキーを生成する

  1. サービスアカウントの詳細ページで、キータブを選択します。

  2. キーの追加を選択し、新しいキーを作成します

  3. JSON を選択し、作成を選択します。ブラウザは、サービスアカウントの client_emailと を含む JSON ファイルをダウンロードしますprivate_key。ファイルを安全に保存します。

注記

サービスアカウントキーの作成が組織ポリシーによって無効になっていることを示すエラーが表示された場合は、プロジェクトのiam.disableServiceAccountKeyCreation制約を上書きする必要があります。詳細については、Google Cloud ドキュメントの「サービスアカウントの使用状況の制限」を参照してください。

ステップ 5: ドメイン全体の委任を設定する

ドメイン全体の委任により、サービスアカウントは Google Workspace のユーザーに代わって動作します。

  1. Google Workspace 管理者として Google Workspace 管理者コンソールにサインインします。

  2. ナビゲーションペインで、セキュリティアクセスとデータ管理API コントロールを選択します。

  3. ドメイン全体の委任の管理を選択し、新しい を追加します

  4. クライアント ID には、ステップ 3 でサービスアカウントの一意の ID を入力します。

  5. OAuth スコープの場合は、次のカンマ区切り値を入力します。

    https://www.googleapis.com/auth/drive.readonly, https://www.googleapis.com/auth/drive.metadata.readonly, https://www.googleapis.com/auth/admin.directory.user.readonly, https://www.googleapis.com/auth/admin.directory.group.readonly, https://www.googleapis.com/auth/cloud-platform, https://www.googleapis.com/auth/forms.body.readonly
  6. [承認] を選択します。

ステップ 6: 委任管理者ユーザーを作成する

サービスアカウントは、コンテンツをクロールするときに Google Workspace 管理者ユーザーを偽装します。必要な最小限のロールを使用して、この目的のために専用の管理者ユーザーを作成することをお勧めします。

  1. Google Workspace 管理コンソールで、ディレクトリユーザーを選択します。

  2. 「新しいユーザーの追加」を選択し、名前、姓、プライマリ E メールアドレスを入力し、「新しいユーザーの追加」を選択します。

  3. ユーザーリストから、作成したユーザーを開きます。

  4. 管理者ロールと権限セクションを展開し、次のロールを割り当てます。

    • グループリーダー

    • ユーザー管理管理者

    • ストレージ管理者

  5. [保存] を選択します。このユーザーの E メールアドレスを記録し、 としてシークレットに保存しますadminAccountEmail

ステップ 7: Secrets Manager シークレットを作成する

次のキーと値のペアを使用して、認証情報を AWS Secrets Manager シークレットに保存します。ステップ 4 でダウンロードした JSON キーファイルprivateKeyから clientEmailと をコピーします ( client_emailprivate_keyの値を使用します)。

{ "adminAccountEmail": "admin@your-domain.com", "clientEmail": "your-service-account@your-project.iam.gserviceaccount.com", "privateKey": "your-private-key-from-the-json-key-file" }

以下を使用してシークレットを作成します AWS Command Line Interface。

aws secretsmanager create-secret \ --name bedrock-google-drive-sa-creds \ --secret-string file://secret.json

レスポンスからシークレット ARN を記録します。データソース として使用しますsecretArn

注記

privateKey 値には、JSON キーファイルからのリテラル\nエスケープシーケンスが含まれます。値をシークレットにコピーするときは、そのままにしておきます。

次の手順

シークレットを保存したら、 を authTypeに設定してデータソースを作成しますSERVICE_ACCOUNT。「Google Drive データソースを接続する」を参照してください。ユーザーアクセス許可でクエリ結果をフィルタリングするには、「」を参照してくださいドキュメントレベルのアクセスコントロール