View a markdown version of this page

OneDrive の Microsoft Entra App ID 認証を設定する - Amazon Bedrock

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

OneDrive の Microsoft Entra App ID 認証を設定する

Microsoft Entra App ID 認証 (ENTRA_APP_ID) は、OneDrive データソースに推奨される認証方法です。コネクタは、アプリケーションのクライアント ID とシークレットを使用して、OAuth 2.0 クライアント認証情報 (アプリケーションのみ) フローでコンテンツをクロールします。ユーザーのサインインは必要ありません。これは、ドキュメントレベルのアクセスコントロール (ACLs) をサポートする唯一の認証方法です。代替OAUTH2方法との比較については、「」を参照してください認証方法

注記

証明書は、ドキュメントレベルのアクセスコントロールを有効にする場合にのみ必要です。コンテンツのみのクローリングでは、コネクタに必要な認証情報はクライアント ID とシークレットのみです。これは、Microsoft Entra ID App-Only 認証に常に証明書が必要な SharePoint データソースとは異なります。

管理アクセスが必要

この設定では、Microsoft Entra ID 管理者 (グローバル管理者または特権ロール管理者) がアプリケーションを登録し、アクセス許可を設定し、管理者の同意を付与する必要があります。以下のセットアップステップとロールの表は、各ステップに必要なアクセスを示しています。

セットアップステップとロール

この手順には、Microsoft Entra ID 管理者と AWS 管理者の両方が含まれます。組織における責任の分担方法によっては、1 人または複数のユーザーがこれらのステップを完了する場合があります。証明書のステップ (ステップ 4~6 および 8) は、ドキュメントレベルのアクセスコントロールを有効にする場合にのみ適用されます。以下の表を使用して、各ステップに必要なアクセスを特定します。

セットアップステップと各ステップに必要なアクセス
Step 行うこと 必要なアクセス
1. アプリケーションを登録する Entra アプリ登録を作成し、そのクライアント ID とテナント IDsを記録します。 Microsoft Entra ID 管理者 (グローバル管理者または特権ロール管理者)
2. アクセス許可を追加し、同意を付与する 設定にアプリケーションアクセス許可を割り当て、管理者の同意を付与します。 Microsoft Entra ID 管理者
3. クライアントシークレットを作成する アプリケーションのクライアントシークレットを作成し、その値を記録します。 Microsoft Entra ID 管理者
4. 証明書の生成 (ACLsのみ) OpenSSL で自己署名証明書と PKCS#12 (.p12) バンドルを作成します。 ローカルターミナルを持つユーザー (OpenSSL が必要)
5. パブリック証明書を Entra にアップロードACLs のみ) アプリ登録のキーにパブリック証明書を追加します。 Microsoft Entra ID 管理者
6. 証明書を Amazon S3 にアップロードACLs のみ) .p12 バンドルを Amazon S3 バケットに保存します。 AWS 管理者 (Amazon S3)
7. シークレットを作成する 認証情報を AWS Secrets Manager シークレットに保存します。 AWS 管理者 (Secrets Manager)
8. サービスロールに証明書へのアクセスを許可する (ACLsのみ) ナレッジベースサービスロールに Amazon S3 読み取りアクセス許可を追加します。 AWS 管理者 (IAM)

アクセス許可に関するリファレンス

設定に一致するアプリケーションアクセス許可を割り当てます。すべてのアクセス許可はアプリケーションのアクセス許可 (委任されていません) であり、すべてのアクセス許可には管理者の同意が必要です。コンテンツのみのクローリングの場合、コネクタは Microsoft Graph に対してのみ認証します。ドキュメントレベルのアクセスコントロールを有効にすると、OneDrive for Business は SharePoint によってバックアップされるため、コネクタはさらに SharePoint REST API を認証してクエリ時にアクセスを検証します。

重要

Entra ポータルでこれらのアクセス許可を追加するときは、委任されたアクセス許可ではなく、アプリケーションのアクセス許可タブを選択します。 アプリケーションのみの認証では、アプリケーションのアクセス許可を使用します。

設定のタブを選択すると、割り当てる正確なアクセス許可が表示されます。

Content only (no ACLs)
コンテンツのみ
API アクセス許可 目的
Microsoft Graph Files.Read.All ユーザーのドライブにあるファイルを読み取ります。
Microsoft Graph Sites.Read.All ユーザーのドライブをバックアップする OneDrive サイトをお読みください。
Microsoft Graph User.Read.All クロールするドライブを持つユーザーを列挙します。
With ACLs
ACLs
API アクセス許可 目的
Microsoft Graph Files.Read.All ユーザーのドライブにあるファイルを読み取ります。
Microsoft Graph Sites.Read.All ユーザーのドライブをバックアップする OneDrive サイトをお読みください。
Microsoft Graph User.Read.All ユーザーを列挙し、ドキュメントレベルの ACLs。
Microsoft Graph GroupMember.Read.All ドキュメントレベルの ACLs。
SharePoint Sites.FullControl.All クエリ時に各ユーザーのドキュメントへのアクセスを確認します。 Sites.Read.Allはこのチェックには不十分です。
注記

SharePoint アクセスSites.FullControl.All許可は、テナント内のサイト間でコネクタアプリケーションに広範なアクセスを許可します。このアプリケーションにのみ付与し、それに応じてアプリケーションの認証情報を保護します。

セットアップ時に収集する値

ステップを進めながら、以下の値を作成または収集します。データソースを作成するときに使用します。詳細については、「OneDrive データソースを接続する」を参照してください。

値リファレンス
で作成 次の用途に使用されます。
アプリケーション (クライアント) ID ステップ 1 シークレット (clientId)。
ディレクトリ (テナント) ID ステップ 1 データソース tenantId
クライアントシークレット値 ステップ 3 シークレット (clientSecret)。
証明書 — PKCS#12 バンドル (.p12) とそのパスワード (ACLsのみ) ステップ 4 バンドル (証明書とプライベートキー) は Amazon S3 にアップロードされ (ステップ 6)、パスワードはシークレットに保存されます (certificatePassword)。
証明書 — パブリック証明書 (.cer) (ACLsのみ) ステップ 4 Entra アプリ登録にアップロードされた同じ証明書のパブリック半分 (ステップ 5)。
Amazon S3 バケット名とキー (ACLsのみ) ステップ 6 データソース certificateS3Path
シークレット ARN ステップ 7 データソース secretArn

ステップ 1: Microsoft Entra ID にアプリケーションを登録する

  1. Microsoft Entra 管理センターにサインインします。

  2. 左側のナビゲーションで、Entra ID を展開し、アプリ登録を選択します。

  3. [New registration] (新規登録) を選択します。

  4. Name には、 などのわかりやすい名前を入力しますbedrock-onedrive-connector

  5. サポートされるアカウントタイプでは、この組織ディレクトリのアカウントのみ (単一テナント) を選択します。

  6. リダイレクト URI は空白のままにします。アプリケーションはインタラクティブサインインフローではなくクライアント認証情報フローを使用するため、リダイレクト URI は必要ありません。

  7. [登録] を選択します。

  8. アプリケーションの概要ページで、アプリケーション (クライアント) IDディレクトリ (テナント) ID を記録します。後で両方が必要です。

ステップ 2: API アクセス許可を追加し、管理者の同意を付与する

から設定のアクセス許可を追加しますアクセス許可に関するリファレンス

  1. アプリ登録で API アクセス許可を選択し、アクセス許可を追加します

  2. Microsoft Graph を選択し、次にアプリケーションのアクセス許可を選択します。設定の各 Microsoft Graph アクセス許可を検索して選択し、アクセス許可の追加を選択します。

  3. ドキュメントレベルのアクセスコントロールを有効にする場合は、アクセス許可を再度追加を選択します。(Microsoft APIs) SharePoint を選択し、次にアプリケーションのアクセス許可を選択します。を選択しSites.FullControl.All、アクセス許可の追加を選択します。

  4. API アクセス許可ページで、[組織] に対する管理者の同意を付与を選択し、確認します。管理者の同意がない場合、アプリケーションは OneDrive データにアクセスできません。

ステップ 3: クライアントシークレットを作成する

OneDrive クローリングはアプリケーションのクライアント ID とシークレットを使用するため、コンテンツ専用データソースと ACL 対応データソースの両方にクライアントシークレットが必要です。ドキュメントレベルのアクセスコントロールを有効にすると、コネクタはクライアントシークレットを使用してテナントの OneDrive ホストを解決する Microsoft Graph トークンを取得し、証明書 (ステップ 4 から) を使用してアクセスチェックに使用される SharePoint トークンを取得します。

  1. アプリ登録で、証明書とシークレットクライアントシークレット、新しいクライアントシークレットを選択します。

  2. 説明を入力し、有効期限を選択し、追加を選択します。

  3. シークレット をすぐに記録します。1 回だけ表示されます。シークレット ID ではなく、 を記録します。

ステップ 4 (ACLsのみ): 認証証明書を生成する

注記

このステップとステップ 5、6、8 は、ドキュメントレベルのアクセスコントロールを有効にする場合にのみ適用されます。コンテンツのみのクローリングの場合は、「」に進みますステップ 7: Secrets Manager シークレットを作成する

自己署名証明書を生成し、PKCS#12 (.p12) バンドルとしてパッケージ化します。バンドルには、パスワードで保護された証明書とそのプライベートキーの両方が含まれています。パブリック証明書を Entra (ステップ 5) にアップロードし、.p12バンドルを Amazon S3 (ステップ 6) にアップロードします。オペレーティングシステムのタブを選択すると、コマンドが表示されます。

注記

Amazon Bedrock は.p12バンドルからプライベートキーを読み取り、認証アサーションに署名するため、バンドルはパスワードで保護する必要があります。強力でランダムcertificatePasswordなパスワードを選択します。ステップ 7 のようにシークレットに保存します。

Linux or macOS (OpenSSL)

プライベートキーと自己署名証明書を生成する

openssl req -x509 -newkey rsa:2048 -keyout private_key.pem -out certificate.cer \ -days 365 -nodes \ -subj "/CN=bedrock-onedrive-connector"

証明書とキーを PKCS#12 (.p12) バンドルとしてパッケージ化する

プロンプトが表示されたら、強力なエクスポートパスワードを入力します。ステップ 7 で記録します。

openssl pkcs12 -export -out certificate.p12 \ -inkey private_key.pem -in certificate.cer

これで、プライベートキー (private_key.pem)、パブリック証明書 ()、バンドル (certificate.cer) の 3 つのファイルが作成されましたcertificate.p12。ステップ 5 で Entra にパブリック証明書をアップロードし、ステップ 6 で.p12バンドルを Amazon S3 にアップロードします。

Windows (PowerShell)

自己署名証明書を生成する

次の PowerShell コマンドは、1 年間の有効期間を持つ 2048 ビット RSA 自己署名証明書を生成し、現在のユーザーの証明書ストアに保存します。your-password を強力でランダムなパスワードに置き換えます。ステップ 7 certificatePasswordのようにシークレットに保存します。

$cert = New-SelfSignedCertificate ` -Subject "CN=bedrock-onedrive-connector" ` -CertStoreLocation "Cert:\CurrentUser\My" ` -KeyAlgorithm RSA ` -KeyLength 2048 ` -KeyExportPolicy Exportable ` -NotAfter (Get-Date).AddYears(1)

パブリック証明書をエクスポートする

Export-Certificate -Cert $cert -FilePath certificate.cer -Type CERT

PKCS#12 (.p12) バンドルをエクスポートする

$password = ConvertTo-SecureString -String "your-password" -Force -AsPlainText Export-PfxCertificate -Cert $cert -FilePath certificate.p12 -Password $password

これで、パブリック証明書 (certificate.cer) とバンドル () の 2 つのファイルが作成されましたcertificate.p12。ステップ 5 で Entra にパブリック証明書をアップロードし、ステップ 6 で.p12バンドルを Amazon S3 にアップロードします。

重要

.p12 バンドルを Amazon S3 に保存します ( .pemまたは .cer ファイルではありません)。バンドルには、アクセス検証のために Amazon Bedrock が SharePoint に認証するために使用するプライベートキーが含まれているため、安全に保存します。ドキュメントレベルのアクセスコントロールには、 .p12形式が必要です。

注記

証明書はデフォルトで 1 年間有効です。証明書の有効期限が切れると、すべての同期が失敗するため、有効期限が切れる前に証明書をローテーションします。有効期間を変更するには、 -daysオプション (OpenSSL) または -NotAfter引数 (PowerShell) を調整します。ローテーションの手順については、「」を参照してください証明書をローテーションする

ステップ 5 (ACLs のみ): Entra にパブリック証明書をアップロードする

  1. アプリ登録で、証明書とシークレットを選択し、証明書タブを選択します。

  2. 証明書をアップロードを選択し、ステップ 4 で生成したcertificate.cerファイルを選択します (パブリック証明書のみ - .p12バンドルまたはプライベートキーを Entra にアップロードしないでください)。

  3. [Add] (追加) を選択します。

ステップ 6 (ACLsのみ): Amazon S3 に証明書をアップロードする

ステップ 4 の.p12バンドルをナレッジベースと同じ AWS リージョンの Amazon S3 バケットにアップロードします。バケット名とキーを記録します。データソース として使用しますcertificateS3Path

aws s3api put-object \ --bucket your-certificate-bucket \ --key certs/certificate.p12 \ --body certificate.p12 \ --server-side-encryption AES256
注記

証明書オブジェクトでサーバー側の暗号化を有効にし、バケットを必要とするプリンシパルに制限することをお勧めします。バンドルにはプライベートキーが含まれています。

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

認証情報を AWS Secrets Manager シークレットに保存します。Microsoft Entra App ID 認証には、次のキーと値のペアを含めます。

  • clientId (必須) — ステップ 1 のアプリケーション (クライアント) ID。

  • clientSecret (必須) — ステップ 3 のクライアントシークレット値。

  • certificatePassword (ドキュメントレベルのアクセスコントロールのみ、推奨) — ステップ 4 で.p12バンドルに設定したパスワード。以下の注意事項を参照してください。

コンテンツのみ (ドキュメントレベルのアクセスコントロールなし)

{ "clientId": "your-client-id", "clientSecret": "your-client-secret" }

ドキュメントレベルのアクセスコントロールを使用する

{ "clientId": "your-client-id", "clientSecret": "your-client-secret", "certificatePassword": "your-certificate-password" }

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

aws secretsmanager create-secret \ --name bedrock-onedrive-creds \ --secret-string file://secret.json

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

注記

ドキュメントレベルのアクセスコントロールが有効になっている場合は、ステップ 4 で.p12バンドルを作成したときに使用したパスワードcertificatePasswordに を設定します。このフィールドを省略すると、Amazon Bedrock はアプリケーションのクライアント ID をパスワードとして使用してバンドルを開くため、バンドルはクライアント ID をパスワードとして使用して作成されている必要があります。代わりに、常に明示的でエントロピーの高いパスワードを設定することをお勧めします。

ステップ 8 (ACLsのみ): サービスロールに証明書へのアクセスを許可する

ナレッジベースサービスロールは、Amazon S3 から証明書オブジェクトを読み取ることができる必要があります。次のステートメントをロールのアクセス許可ポリシーに追加し、バケット名とキーを値に置き換えます。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3ListCertificateBucket", "Effect": "Allow", "Action": ["s3:ListBucket"], "Resource": ["arn:aws:s3:::your-certificate-bucket"], "Condition": { "StringEquals": { "aws:ResourceAccount": ["123456789012"] } } }, { "Sid": "S3GetCertificate", "Effect": "Allow", "Action": ["s3:GetObject"], "Resource": [ "arn:aws:s3:::your-certificate-bucket/certs/certificate.p12", "arn:aws:s3:::your-certificate-bucket/certs/certificate.p12.metadata.json" ], "Condition": { "StringEquals": { "aws:ResourceAccount": ["123456789012"] } } } ] }
注記

このポリシーでは、証明書とともにオプションの .metadata.json ファイルへの読み取りアクセスも許可します。Amazon Bedrock はこのファイルを必要としません。 アクセス許可を含めると、アクセスエラーが存在する場合、アクセスエラーを防ぐことができます。

証明書オブジェクトが KMS AWS キーで暗号化されている場合

のアップロードコマンドは、追加のアクセス許可を必要としない Amazon S3-managed暗号化 (AES256) ステップ 6 (ACLsのみ): Amazon S3 に証明書をアップロードするを使用します。代わりに、カスタマーマネージド KMS キー (SSE-KMS) を使用して Amazon S3 サーバー側の暗号化で証明書オブジェクトを暗号化する場合、サービスロールにはそのキーに対する kms:Decrypt アクセス許可も必要です。また、キーのポリシーでは、そのキーの使用をロールに許可する必要があります。 AWS マネージドaws/s3キーで暗号化されたオブジェクトには、この追加の許可は必要ありません。

{ "Sid": "KmsDecryptCertificate", "Effect": "Allow", "Action": ["kms:Decrypt"], "Resource": ["arn:aws:kms:us-west-2:123456789012:key/your-key-id"] }

ナレッジベースサービスロールのアクセス許可の完全なセットについては、「」を参照してくださいデータソースにアクセスするためのアクセス許可

次の手順

これで、データソースの作成に必要な認証情報、シークレット ARN、テナント ID、および証明書の Amazon S3 の場所 (ドキュメントレベルのアクセスコントロール用) ができました。 AWS マネジメントコンソール または API を使用して OneDrive データソースを作成するには、「」を参照してくださいOneDrive データソースを接続する