翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Google Drive のサービスアカウント認証を設定する
サービスアカウント認証 (SERVICE_ACCOUNT) は、Google Drive データソースに推奨される方法です。Google クラウドサービスアカウントはプライベートキーで認証し、Google Workspace 管理者ユーザーになりすますことで、ドメイン内のすべてのユーザーの Drive コンテンツをクロールします。これは、ドキュメントレベルのアクセスコントロール (ACLs) をサポートする唯一の方法です。
管理アクセスが必要
この設定では、Google Workspace 管理者が APIs の有効化、サービスアカウントの作成、ドメイン全体の委任の設定、委任された管理者ユーザーの作成を行う必要があります。 AWS 側には、 AWS Secrets Manager と IAM への管理者アクセスが必要です。
ステップ 1: Google Cloud プロジェクトを作成する
-
Google Cloud コンソール
を開きます。 -
ページ上部のプロジェクトセレクターから、新しいプロジェクトを選択します。
-
プロジェクト名を入力し、作成を選択します。
-
プロジェクトを作成したら、プロジェクトセレクタからプロジェクトに切り替えます。
ステップ 2: 必要な APIs
-
Google クラウドコンソールのナビゲーションメニューで、APIsとサービス、ライブラリを選択します。
-
次の各 APIs。
Google Drive API
Google Drive アクティビティ API
管理者 SDK API
ステップ 3: サービスアカウントを作成する
-
ナビゲーションメニューで、APIsとサービス、認証情報を選択します。
-
認証情報の作成、サービスアカウントを選択します。
-
名前 ( など
bedrock-google-drive-connector) とオプションの説明を入力し、完了 を選択します。 -
認証情報ページで、先ほど作成したサービスアカウントを選択します。
-
詳細タブで、一意の ID をコピーします。ステップ 5 でこれを使用して、ドメイン全体の委任を付与します。
ステップ 4: プライベートキーを生成する
-
サービスアカウントの詳細ページで、キータブを選択します。
-
キーの追加を選択し、新しいキーを作成します。
-
JSON を選択し、作成を選択します。ブラウザは、サービスアカウントの
client_emailと を含む JSON ファイルをダウンロードしますprivate_key。ファイルを安全に保存します。
注記
サービスアカウントキーの作成が組織ポリシーによって無効になっていることを示すエラーが表示された場合は、プロジェクトのiam.disableServiceAccountKeyCreation制約を上書きする必要があります。詳細については、Google Cloud ドキュメントの「サービスアカウントの使用状況の制限
ステップ 5: ドメイン全体の委任を設定する
ドメイン全体の委任により、サービスアカウントは Google Workspace のユーザーに代わって動作します。
-
ナビゲーションペインで、セキュリティ、アクセスとデータ管理、API コントロールを選択します。
-
ドメイン全体の委任の管理を選択し、新しい を追加します。
-
クライアント ID には、ステップ 3 でサービスアカウントの一意の ID を入力します。
-
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: 委任管理者ユーザーを作成する
サービスアカウントは、コンテンツをクロールするときに Google Workspace 管理者ユーザーを偽装します。必要な最小限のロールを使用して、この目的のために専用の管理者ユーザーを作成することをお勧めします。
-
Google Workspace 管理コンソールで、ディレクトリ、ユーザーを選択します。
-
「新しいユーザーの追加」を選択し、名前、姓、プライマリ E メールアドレスを入力し、「新しいユーザーの追加」を選択します。
-
ユーザーリストから、作成したユーザーを開きます。
-
管理者ロールと権限セクションを展開し、次のロールを割り当てます。
グループリーダー
ユーザー管理管理者
ストレージ管理者
-
[保存] を選択します。このユーザーの E メールアドレスを記録し、 としてシークレットに保存します
adminAccountEmail。
ステップ 7: Secrets Manager シークレットを作成する
次のキーと値のペアを使用して、認証情報を AWS Secrets Manager シークレットに保存します。ステップ 4 でダウンロードした JSON キーファイルprivateKeyから clientEmailと をコピーします ( client_email と private_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 \ --namebedrock-google-drive-sa-creds\ --secret-string file://secret.json
レスポンスからシークレット ARN を記録します。データソース として使用しますsecretArn。
注記
privateKey 値には、JSON キーファイルからのリテラル\nエスケープシーケンスが含まれます。値をシークレットにコピーするときは、そのままにしておきます。
次の手順
シークレットを保存したら、 を authTypeに設定してデータソースを作成しますSERVICE_ACCOUNT。「Google Drive データソースを接続する」を参照してください。ユーザーアクセス許可でクエリ結果をフィルタリングするには、「」を参照してくださいドキュメントレベルのアクセスコントロール。