

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

# Google Drive のサービスアカウント認証を設定する
<a name="kb-managed-googledrive-service-account-setup"></a>

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

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

## ステップ 1: Google Cloud プロジェクトを作成する
<a name="kb-managed-googledrive-sa-step1"></a>

1. [Google Cloud コンソール](https://console.cloud.google.com/)を開きます。

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

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

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

## ステップ 2: 必要な APIs
<a name="kb-managed-googledrive-sa-step2"></a>

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

1. 次の各 APIs。
   + **Google Drive API**
   + **Google Drive アクティビティ API**
   + **管理者 SDK API**

## ステップ 3: サービスアカウントを作成する
<a name="kb-managed-googledrive-sa-step3"></a>

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

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

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

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

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

## ステップ 4: プライベートキーを生成する
<a name="kb-managed-googledrive-sa-step4"></a>

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

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

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

**注記**  
サービスアカウントキーの作成が組織ポリシーによって無効になっていることを示すエラーが表示された場合は、プロジェクトの`iam.disableServiceAccountKeyCreation`制約を上書きする必要があります。詳細については、Google Cloud ドキュメントの[「サービスアカウントの使用状況の制限](https://cloud.google.com/resource-manager/docs/organization-policy/restricting-service-accounts)」を参照してください。

## ステップ 5: ドメイン全体の委任を設定する
<a name="kb-managed-googledrive-sa-step5"></a>

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

1. [Google Workspace 管理者として Google Workspace 管理者コンソール](https://admin.google.com/)にサインインします。

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

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

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

1. **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
   ```

1. [**承認**] を選択します。

## ステップ 6: 委任管理者ユーザーを作成する
<a name="kb-managed-googledrive-sa-step6"></a>

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

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

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

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

1. **管理者ロールと権限**セクションを展開し、次のロールを割り当てます。
   + **グループリーダー**
   + **ユーザー管理管理者**
   + **ストレージ管理者**

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

## ステップ 7: Secrets Manager シークレットを作成する
<a name="kb-managed-googledrive-sa-step7"></a>

次のキーと値のペアを使用して、認証情報を 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 \
  --name {{bedrock-google-drive-sa-creds}} \
  --secret-string file://secret.json
```

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

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

## 次の手順
<a name="kb-managed-googledrive-sa-next"></a>

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