

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

# セキュリティ
<a name="security-overview"></a>

Amazon Bedrock のセキュリティには、データ、アプリケーション、インフラストラクチャに対する複数の保護レイヤーが含まれます。

**Topics**
+ [データ保護](data-protection.md)
+ [Amazon Bedrock のためのアイデンティティとアクセス管理](security-iam.md)
+ [カスタムモデルインポートジョブの Amazon S3 バケットへのクロスアカウントアクセス](cross-account-access-cmi.md)
+ [Amazon Bedrock のコンプライアンス検証](compliance-validation.md)
+ [Amazon Bedrock でのインシデントへの対応](security-incident-response.md)
+ [Amazon Bedrock の耐障害性](disaster-recovery-resiliency.md)
+ [Amazon Bedrock でのインフラストラクチャセキュリティ](infrastructure-security.md)
+ [サービス間の混乱した代理の防止](cross-service-confused-deputy-prevention.md)
+ [Amazon Bedrock での設定と脆弱性の分析](vulnerability-analysis-and-management.md)
+ [Amazon Bedrock による不正検出](abuse-detection.md)
+ [プロンプトインジェクションのセキュリティ](prompt-injection.md)

# データ保護
<a name="data-protection"></a>

責任 AWS [共有モデル](https://aws.amazon.com/compliance/shared-responsibility-model/)、Amazon Bedrock でのデータ保護に適用されます。このモデルで説明されているように、 AWS はすべての を実行するグローバルインフラストラクチャを保護する責任があります AWS クラウド。ユーザーは、このインフラストラクチャでホストされるコンテンツに対する管理を維持する責任があります。また、使用する「 AWS のサービス 」のセキュリティ設定と管理タスクもユーザーの責任となります。データプライバシーの詳細については、[データプライバシーに関するよくある質問](https://aws.amazon.com/compliance/data-privacy-faq/)を参照してください。欧州でのデータ保護の詳細については、*AWS セキュリティブログ*に投稿された「[AWS 責任共有モデルおよび GDPR](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/)」のブログ記事を参照してください。

データ保護の目的で、認証情報を保護し AWS アカウント 、 AWS IAM アイデンティティセンター または AWS Identity and Access Management (IAM) を使用して個々のユーザーを設定することをお勧めします。この方法により、それぞれのジョブを遂行するために必要な権限のみが各ユーザーに付与されます。また、次の方法でデータを保護することもお勧めします:
+ 各アカウントで多要素認証 (MFA) を使用します。
+ SSL/TLS を使用して AWS リソースと通信します。TLS 1.2 は必須ですが、TLS 1.3 を推奨します。
+ で API とユーザーアクティビティのログ記録を設定します AWS CloudTrail。CloudTrail 証跡を使用して AWS アクティビティをキャプチャする方法については、「 *AWS CloudTrail ユーザーガイド*」の[CloudTrail 証跡の使用](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-trails.html)」を参照してください。
+  AWS 暗号化ソリューションと、その中のすべてのデフォルトのセキュリティコントロールを使用します AWS のサービス。
+ Amazon Macie などの高度な管理されたセキュリティサービスを使用します。これらは、Amazon S3 に保存されている機密データの検出と保護を支援します。
+ コマンドラインインターフェイスまたは API AWS を介して にアクセスするときに FIPS 140-3 検証済み暗号化モジュールが必要な場合は、FIPS エンドポイントを使用します。利用可能な FIPS エンドポイントの詳細については、「[連邦情報処理規格 (FIPS) 140-3](https://aws.amazon.com/compliance/fips/)」を参照してください。

お客様の E メールアドレスなどの極秘または機密情報を、タグ、または **[名前]** フィールドなどの自由形式のテキストフィールドに含めないことを強くお勧めします。これは、コンソール、API、または SDK を使用して Amazon Bedrock AWS CLIまたは他の AWS のサービス を使用する場合も同様です。 AWS SDKs タグ、または名前に使用される自由記述のテキストフィールドに入力したデータは、請求または診断ログに使用される場合があります。外部サーバーに URL を提供する場合、そのサーバーへのリクエストを検証できるように、認証情報を URL に含めないことを強くお勧めします。

Amazon Bedrock では、プロンプトおよび AI のレスポンスを保存またはログに記録することはありません。Amazon Bedrock は、プロンプトと完了を使用して AWS モデルをトレーニングせず、サードパーティーに配布しません。

Amazon Bedrock にはモデルデプロイアカウントの概念があります。Amazon Bedrock が利用可能な各 AWS リージョンには、モデルプロバイダーごとに 1 つのデプロイアカウントがあります。これらのアカウントは、Amazon Bedrock サービスチームが所有および運用しています。モデルプロバイダーはこれらのアカウントにアクセスできません。モデルプロバイダーから にモデルを配信した後 AWS、Amazon Bedrock はモデルプロバイダーの推論とトレーニングソフトウェアのディープコピーをそれらのアカウントに実行してデプロイします。モデルプロバイダーはこれらのアカウントにアクセスできないため、Amazon Bedrock のログや顧客のプロンプトやそれに対するレスポンスにアクセスすることはできません。

**Topics**
+ [データ暗号化](data-encryption.md)
+ [Amazon VPC と AWS PrivateLink を使用してデータを保護する](usingVPC.md)

# データ暗号化
<a name="data-encryption"></a>

Amazon Bedrock は、暗号化を使用して保管中のデータと転送中のデータを保護します。

**転送時の暗号化**

内部では AWS、転送中のすべてのネットワーク間データが TLS 1.2 暗号化をサポートしています。

Amazon Bedrock API とコンソールに対するリクエストには、安全な SSL 接続が使用されます。 AWS Identity and Access Management (IAM) ロールを Amazon Bedrock に渡し、トレーニングとデプロイのためにユーザーに代わって リソースにアクセスするアクセス許可を付与します。

**保管時の暗号化**

Amazon Bedrock は保管中の [カスタムモデルの暗号化](encryption-custom-job.md) を提供します。

## キー管理
<a name="key-management"></a>

 AWS Key Management Service を使用して、 リソースの暗号化に使用するキーを管理します。詳細については、「[AWS Key Management Service の概念](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys)」を参照してください。KMS キーを使用して次のリソースを暗号化できます。
+ Amazon Bedrock の場合
  + モデルカスタマイズジョブとその出力カスタムモデル – コンソールでのジョブの作成中、または [CreateModelCustomizationJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateModelCustomizationJob.html) API コールで `customModelKmsKeyId` フィールドの指定によって。
  + エージェント – コンソールでのエージェント作成中、または [CreateAgent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateAgent.html) API コールで `customerEncryptionKeyArn` フィールドの指定によって。
  + ナレッジベースのデータソース取り込みジョブ – コンソールでのナレッジベースの作成中、または [CreateDataSource](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateDataSource.html) または [UpdateDataSource](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_UpdateDataSource.html) API コールで `kmsKeyArn` フィールドの指定によって。
  + Amazon OpenSearch Service のベクトルストア – ベクトルストアの作成中。詳細については、「[Amazon OpenSearch Service コレクションの作成、一覧表示、および削除](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-manage.html)」と「[Amazon OpenSearch Service の保管中のデータの暗号化](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/encryption-at-rest.html)」を参照してください。
  + モデル評価ジョブ – コンソールでモデル評価ジョブを作成するか、[CreateEvaluationJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateEvaluationJob.html) API コールでの ` customerEncryptionKeyId` でキー ARN を指定して、モデル評価ジョブを作成する場合。
+ Amazon S3 経由 – 詳細については、[AWS KMS 「キーによるサーバー側の暗号化の使用 (SSE-KMS)」を参照してください。](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html)
  + モデルカスタマイズ用のトレーニング、検証、出力データ
  + ナレッジベースのデータソース
+ 経由 AWS Secrets Manager – 詳細については、「」の[「シークレットの暗号化と復号 AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/security-encryption.html)」を参照してください。
  + サードパーティーモデルのベクトルストア

リソースを暗号化したら、リソースを選択してコンソールで **[詳細]** を表示するか、次の `Get` API コールを使用して KMS キーの ARN を見つけることができます。
+ [GetModelCustomizationJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_GetModelCustomizationJob.html)
+ [GetAgent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_GetAgent.html)
+ [GetIngestionJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_GetIngestionJob.html)

# カスタムモデルの暗号化
<a name="encryption-custom-job"></a>

Amazon Bedrock は、[CreateModelCustomizationJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateModelCustomizationJob.html) アクションまたは[コンソール](model-customization-submit.md)でトレーニングデータを使用して、Amazon Bedrock の基盤モデルをファインチューニングしたカスタムモデルを作成します。カスタムモデルは によって管理および保存されますAWS。

Amazon Bedrock では、お客様から提供されたファインチューニングデータを Amazon Bedrock 基盤モデルのファインチューニングにのみ使用します。Amazon Bedrock は、ファインチューニングモデルを他の目的に使用することはありません。トレーニングデータは、Titan の基盤モデルのトレーニングに使用されたり、第三者に配布されたりすることはありません。使用状況のタイムスタンプや記録されたアカウント ID など、サービスによって記録されたその他の使用状況データ・情報も、モデルのトレーニングには使用されません。

ファインチューニングジョブが完了すると、ファインチューニングのために提供されたトレーニングデータまたは検証データは Amazon Bedrock に保存されません。

ファインチューニング済みモデルでは、生成の完了中にファインチューニングデータの一部をリプレイできます。どのような形式でも、アプリによってファインチューニングデータが公開されない場合、まずトレーニングデータから機密データを除外する必要があります。誤って機密データを使用してカスタマイズ済みモデルを既に作成している場合は、そのカスタムモデルを削除し、トレーニングデータから機密情報を除外してから、新しいモデルを作成します。

カスタムモデル (コピーされたモデルを含む) を暗号化するため、Amazon Bedrock には 2 つのオプションがあります。

1. **AWS 所有のキー** – デフォルトでは、Amazon Bedrock はカスタムモデルを で暗号化しますAWS 所有のキー。表示、管理、使用AWS 所有のキー、またはそれらの使用を監査することはできません。ただし、データを暗号化するキーを保護するために何か行動を起こしたり、プログラムを変更したりする必要はありません。詳細については、「*AWS Key Management Service デベロッパーガイド*」の 「[AWS 所有のキー](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk)」を参照してください。

1. **カスタマーマネージドキー** – 自分で管理するカスタマーマネージドキーを使用してカスタムモデルを暗号化できます。詳細についてはAWS KMS keys、「 *AWS Key Management Serviceデベロッパーガイド*」の[「カスタマーマネージドキー](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)」を参照してください。

**注記**  
Amazon Bedrock は、 を使用して保管時の暗号化を無償AWS 所有のキーで自動的に有効にします。カスタマーマネージドキーを使用する場合、AWS KMS料金が適用されます。料金の詳細については、「[AWS Key Management Service の料金](https://aws.amazon.com/kms/pricing/)」を参照してください。

詳細についてはAWS KMS、「 [AWS Key Management Serviceデベロッパーガイド](https://docs.aws.amazon.com/kms/latest/developerguide/)」を参照してください。

**Topics**
+ [Amazon Bedrock が で許可を使用する方法AWS KMS](#encryption-br-grants)
+ [カスタマーマネージドキーを作成する方法と、キーポリシーをアタッチする方法について](#encryption-key-policy)
+ [カスタムモデルとコピーされたモデルのアクセス権とキーポリシー](#encryption-cm-statements)
+ [Amazon Bedrock サービスの暗号化キーをモニタリングする](#encryption-monitor-key)
+ [トレーニング、検証、出力データの暗号化](#encryption-custom-job-data)

## Amazon Bedrock が で許可を使用する方法AWS KMS
<a name="encryption-br-grants"></a>

モデルのカスタマイズまたはモデルのコピージョブのためにカスタムモデルを暗号化するカスタマーマネージドキーを指定すると、Amazon Bedrock は [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html) リクエストを AWS KMS に送信して、カスタムモデルに関連付けられた**プライマリ** KMS [グラント](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)をユーザーに代わって作成します。このグラントにより、Amazon Bedrock はカスタマーマネージドキーにアクセスして使用できます。の許可AWS KMSは、Amazon Bedrock に顧客のアカウントの KMS キーへのアクセスを許可するために使用されます。

このプライマリグラントは、Amazon Bedrock が、以下の内部オペレーションでカスタマーマネージドキーを使用するために必要です。
+ [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html) リクエストを に送信AWS KMSして、ジョブの作成時に入力した対称カスタマーマネージド KMS キー ID が有効であることを確認します。
+ [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html) および [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) リクエストを に送信AWS KMSして、カスタマーマネージドキーによって暗号化されたデータキーを生成し、暗号化されたデータキーを復号して、モデルアーティファクトの暗号化に使用できます。
+ モデルカスタマイズ`DescribeKey`、モデルコピー、またはプロビジョンドスループット作成の非同期実行のために、[CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html) リクエストを に送信AWS KMSして、上記のオペレーションのサブセット (`GenerateDataKey`、、`Decrypt`) を使用してスコープダウンされたセカンダリ許可を作成します。
+ Amazon Bedrock は、サービスにより [RetireGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RetireGrant.html) リクエストが送信されるように、グラントの作成中に廃止するプリンシパルを指定する。

カスタマーマネージドAWS KMSキーへのフルアクセスがあります。グラントへのアクセスを取り消すには、[AWS Key Management Service デベロッパーガイド](https://docs.aws.amazon.com/kms/latest/developerguide/)の「[Retiring and revoking grants](https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#grant-delete)」の手順に従います。または、[キーポリシー](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)を変更して、いつでもカスタマーマネージドキーへのサービスのアクセスを削除できます。これを行うと、Amazon Bedrock はお客様のキーで暗号化されたカスタムモデルにアクセスできなくなります。

### カスタムモデルのプライマリグラントとセカンダリグラントのライフサイクル
<a name="encryption-primary-secondary-grants"></a>
+ **プライマリグラント**の有効期間は長く、関連するカスタムモデルがまだ使用されている限り、アクティブのままです。カスタムモデルが削除されると、対応するプライマリグラントは自動的に廃止されます。
+ **セカンダリグラント**は、有効期間が短く、Amazon Bedrock が顧客に代わって実行するオペレーションが完了するとすぐに自動的に廃止されます。例えば、モデルコピージョブが完了すると、Amazon Bedrock にコピーされたカスタムモデルを暗号化することを許可したセカンダリグラントは、すぐに廃止されます。

## カスタマーマネージドキーを作成する方法と、キーポリシーをアタッチする方法について
<a name="encryption-key-policy"></a>

作成して管理するキーを使用して AWSリソースを暗号化するには、以下の一般的なステップを実行します。

1. (前提条件) IAM ロールに [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) アクションのアクセス権があることを確認します。

1. [「キーの作成](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)」の手順に従って、 AWS KMSコンソールまたは [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) オペレーションを使用してカスタマーマネージドキーを作成します。

1. キーの作成は、キーの使用を必要とするオペレーション ([モデルのカスタマイズジョブの送信](model-customization-submit.md)時や[モデルの推論の実行](inference-invoke.md)時など) に使用できるキーに対して `Arn` を返します。

1. 必要なアクセス権を持つキーポリシーを作成してキーにアタッチします。キーポリシーを作成するには、「 AWS Key Management Serviceデベロッパーガイド」の[「キーポリシーの作成](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-overview.html)」の手順に従います。

## カスタムモデルとコピーされたモデルのアクセス権とキーポリシー
<a name="encryption-cm-statements"></a>

KMS キーを作成したら、キーポリシーをアタッチします。キーポリシーとは、カスタマーマネージドキーにアタッチしてアクセスを制御する[リソースベースのポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_identity-vs-resource.html)です。すべてのカスタマーマネージドキーには、キーポリシーが 1 つだけ必要です。このポリシーには、そのキーを使用できるユーザーとその使用方法を決定するステートメントが含まれています。カスタマーマネージドキーを作成する際に、キーポリシーを指定することができます。キーポリシーはいつでも変更できますが、AWS KMS 全体に変更が反映されるまで、多少時間がかかる場合があります。詳細については、[AWS Key Management Service デベロッパーガイド](https://docs.aws.amazon.com/kms/latest/developerguide/)の「[Managing access to customer managed keys](https://docs.aws.amazon.com/kms/latest/developerguide/control-access-overview.html#managing-access)」を参照してください。

カスタムモデルとコピーされたモデルを暗号化するキーには、次の KMS [アクション](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html#awskeymanagementservice-actions-as-permissions)が使用されます。

1. [kms:CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html) – 指定された KMS キーへの[グラントオペレーション](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#terms-grant-operations)によるアクセスを Amazon Bedrock サービスプリンシパルに許可して、カスタマーマネージドキーのグラントを作成します。グラントの詳細については、[AWS Key Management Service デベロッパーガイド](https://docs.aws.amazon.com/kms/latest/developerguide/)の「[Grants in AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)」を参照してください。
**注記**  
また、Amazon Bedrock では廃止プリンシパルを設定し、不要になったグラントを自動的に廃止します。

1. [kms:DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html) – カスタマーマネージドキーの詳細情報を提供して、Amazon Bedrock にキーの検証を許可します。

1. [kms:GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html) – カスタマーマネージドキーの詳細情報を提供して、Amazon Bedrock にユーザーアクセスの検証を許可します。Amazon Bedrock は、生成された暗号文をカスタムモデルとともに保存し、カスタムモデルユーザーに対する追加の検証チェックとして使用します。

1. [kms:Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) – 保存された暗号文を復号して、カスタムモデルを暗号化する KMS キーにロールが適切にアクセスできることを確認します。

ベストプラクティスとして、[kms:ViaService](https://docs.aws.amazon.com/kms/latest/developerguide/conditions-kms.html#conditions-kms-via-service) 条件キーを含めて、キーへのアクセスを Amazon Bedrock サービスに制限することをお勧めします。

キーにアタッチできるキーポリシーは 1 つだけですが、ポリシーの `Statement` フィールドのリストにステーメントを追加して、キーポリシーに複数のステートメントをアタッチできます。

次のステートメントは、カスタムモデルとコピーされたモデルの暗号化に関連しています。

### モデルを暗号化する
<a name="encryption-key-policy-encrypt"></a>

カスタマーマネージドキーを使用してカスタムモデルまたはコピーされたモデルを暗号化するには、次のステートメントをキーポリシーに含めて、モデルの暗号化を許可します。`Principal` フィールドで、キーの暗号化と復号を許可するアカウントを、`AWS` サブフィールドがマッピングされるリストに追加します。`kms:ViaService` 条件キーを使用する場合、リージョンごとに行を追加するか、*\$1\$1region\$1* の代わりに *\$1* を使用して、Amazon Bedrock をサポートするすべてのリージョンを許可できます。

```
{
    "Sid": "PermissionsEncryptDecryptModel",
    "Effect": "Allow",
    "Principal": {
        "AWS": [
            "arn:aws:iam::${account-id}:role/${role}"
        ]
    },
    "Action": [
        "kms:Decrypt",
        "kms:GenerateDataKey",
        "kms:DescribeKey",
        "kms:CreateGrant"
    ],
    "Resource": "*",
    "Condition": {
        "StringLike": {
            "kms:ViaService": [
                "bedrock.${region}.amazonaws.com"
            ] 
        }
    }
}
```

### 暗号化されたモデルへのアクセスを許可する
<a name="encryption-key-policy-decrypt"></a>

KMS キーで暗号化されたモデルへのアクセスを許可するには、キーの復号を許可するキーポリシーに次のステートメントを含めます。`Principal` フィールドで、キーの復号を許可するアカウントを、`AWS` サブフィールドがマッピングされるリストに追加します。`kms:ViaService` 条件キーを使用する場合、リージョンごとに行を追加するか、*\$1\$1region\$1* の代わりに *\$1* を使用して、Amazon Bedrock をサポートするすべてのリージョンを許可できます。

```
{
    "Sid": "PermissionsDecryptModel",
    "Effect": "Allow",
    "Principal": {
        "AWS": [
            "arn:aws:iam::${account-id}:role/${role}"
        ]
    },
    "Action": [
        "kms:Decrypt"
    ],
    "Resource": "*",
    "Condition": {
        "StringLike": {
            "kms:ViaService": [
                "bedrock.${region}.amazonaws.com"
            ] 
        }
    }
}
```

作成する必要があるキーポリシーについては、ユースケースに対応するセクションを展開してください。

### カスタムモデルを暗号化するためのキーアクセス権を設定する
<a name="encryption-cm"></a>

カスタマイズしたモデルを KMS キーで暗号化する場合、そのキーのキーポリシーはユースケースに依存します。自分のユースケースに対応するセクションを展開してください。

#### モデルをカスタマイズするロールとモデルを呼び出すロールが同じ
<a name="encryption-cm-custom-invoke-same"></a>

カスタムモデルを呼び出すロールが、モデルをカスタマイズするロールと同じ場合は、[モデルを暗号化する](#encryption-key-policy-encrypt) からのステートメントのみが必要です。次のポリシーテンプレートの `Principal` フィールドで、カスタムモデルをカスタマイズして呼び出すことを許可するアカウントを、`AWS` サブフィールドがマッピングされるリストに追加します。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "PermissionsCustomModelKey",
    "Statement": [
        {
            "Sid": "PermissionsEncryptCustomModel",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:role/Role"
                ]
            },
            "Action": [
                "kms:Decrypt",
                "kms:GenerateDataKey",
                "kms:DescribeKey",
                "kms:CreateGrant"
            ],
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "kms:ViaService": [
                        "bedrock.us-east-1.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

#### モデルをカスタマイズするロールとモデルを呼び出すロールが異なる
<a name="encryption-custom-invoke-different"></a>

カスタムモデルを呼び出すロールが、モデルをカスタマイズするロールと異なる場合は、[モデルを暗号化する](#encryption-key-policy-encrypt) と [暗号化されたモデルへのアクセスを許可する](#encryption-key-policy-decrypt) からの両方のステートメントが必要です。次のポリシーテンプレートのステートメントを次のように変更します。

1. 最初のステートメントでは、キーの暗号化と復号を許可します。`Principal` フィールドで、カスタムモデルをカスタマイズするアカウントを、`AWS` サブフィールドがマッピングされるリストに追加します。

1. 2 番目のステートメントでは、キーの復号のみが許可されます。`Principal` フィールドで、カスタムモデルを呼び出すことのみを許可するアカウントを、`AWS` サブフィールドがマッピングされるリストに追加します。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "PermissionsCustomModelKey",
    "Statement": [
        {
            "Sid": "PermissionsEncryptCustomModel",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:role/Role"
                ]
            },
            "Action": [
                "kms:Decrypt",
                "kms:GenerateDataKey",
                "kms:DescribeKey",
                "kms:CreateGrant"
            ],
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "kms:ViaService": [
                        "bedrock.us-east-1.amazonaws.com"
                    ]
                }
            }
        },
        {
            "Sid": "PermissionsDecryptModel",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:role/Role"
                ]
            },
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "kms:ViaService": [
                        "bedrock.us-east-1.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

### カスタムモデルをコピーするためのキーアクセス権を設定する
<a name="encryption-copy"></a>

所有しているモデルまたは共有されているモデルをコピーする場合、最大 2 つのキーポリシーを管理する必要がある場合があります。

#### コピーされたモデルを暗号化するキーのキーポリシー
<a name="encryption-copied-model-key-policy"></a>

コピーされたモデルを KMS キーで暗号化する場合、そのキーのキーポリシーはユースケースに依存します。自分のユースケースに対応するセクションを展開してください。

##### モデルをコピーするロールとモデルを呼び出すロールが同じ
<a name="encryption-copied-model-copy-invoke-same"></a>

コピーされたモデルを呼び出すロールが、モデルコピーを作成するロールと同じ場合は、[モデルを暗号化する](#encryption-key-policy-encrypt) からのステートメントのみが必要です。次のポリシーテンプレートの `Principal` フィールドで、コピーしたモデルをコピーして呼び出すことを許可するアカウントを、`AWS` サブフィールドがマッピングされるリストに追加します。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "PermissionsCopiedModelKey",
    "Statement": [
        {
            "Sid": "PermissionsEncryptCopiedModel",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:role/Role"
                ]
            },
            "Action": [
                "kms:Decrypt",
                "kms:GenerateDataKey",
                "kms:DescribeKey",
                "kms:CreateGrant"
            ],
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "kms:ViaService": [
                        "bedrock.us-east-1.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

##### モデルをコピーするロールとモデルを呼び出すロールが異なる
<a name="encryption-copied-model-copy-invoke-different"></a>

コピーされたモデルを呼び出すロールが、モデルコピーを作成するロールと異なる場合は、[モデルを暗号化する](#encryption-key-policy-encrypt) と [暗号化されたモデルへのアクセスを許可する](#encryption-key-policy-decrypt) からの両方のステートメントが必要です。次のポリシーテンプレートのステートメントを次のように変更します。

1. 最初のステートメントでは、キーの暗号化と復号を許可します。`Principal` フィールドで、コピーしたモデルの作成を許可するアカウントを、`AWS` サブフィールドがマッピングされるリストに追加します。

1. 2 番目のステートメントでは、キーの復号のみが許可されます。`Principal` フィールドで、コピーしたモデルを呼び出すことのみを許可するアカウントを、`AWS` サブフィールドがマッピングされるリストに追加します。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "PermissionsCopiedModelKey",
    "Statement": [
        {
            "Sid": "PermissionsEncryptCopiedModel",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:role/Role"
                ]
            },
            "Action": [
                "kms:Decrypt",
                "kms:GenerateDataKey",
                "kms:DescribeKey",
                "kms:CreateGrant"
            ],
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "kms:ViaService": [
                        "bedrock.us-east-1.amazonaws.com"
                    ]
                }
            }
        },
        {
            "Sid": "PermissionsDecryptCopiedModel",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:role/Role"
                ]
            },
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "kms:ViaService": [
                        "bedrock.us-east-1.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

#### コピーするソースモデルを暗号化するキーのキーポリシー
<a name="encryption-copy-source-model-key-policy"></a>

コピーするソースモデルが KMS キーで暗号化されている場合、[暗号化されたモデルへのアクセスを許可する](#encryption-key-policy-decrypt) からのステートメントを、ソースモデルを暗号化するキーのキーポリシーにアタッチします。このステートメントにより、ソースモデルを暗号化するキーの復号がモデルコピーのロールで許可されます。次のポリシーテンプレートの `Principal` フィールドで、ソースモデルのコピーを許可するアカウントを、`AWS` サブフィールドがマッピングされるリストに追加します。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "PermissionsSourceModelKey",
    "Statement": [
        {
            "Sid": "PermissionsDecryptModel",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:role/Role"
                ]
            },
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "kms:ViaService": [
                        "bedrock.us-east-1.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

## Amazon Bedrock サービスの暗号化キーをモニタリングする
<a name="encryption-monitor-key"></a>

Amazon Bedrock リソースでAWS KMSカスタマーマネージドキーを使用する場合、 [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)または [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) を使用して、Amazon Bedrock が送信するリクエストを追跡できますAWS KMS。

以下は、[CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html) が Amazon Bedrock によって呼び出された KMS オペレーションをモニタリングしてプライマリグラントを作成するAWS CloudTrailイベントの例です。

```
{
    "eventVersion": "1.09",
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "AROAIGDTESTANDEXAMPLE:SampleUser01",
        "arn": "arn:aws:sts::111122223333:assumed-role/RoleForModelCopy/SampleUser01",
        "accountId": "111122223333",
        "accessKeyId": "EXAMPLE",
        "sessionContext": {
            "sessionIssuer": {
                "type": "Role",
                "principalId": "AROAIGDTESTANDEXAMPLE",
                "arn": "arn:aws:iam::111122223333:role/RoleForModelCopy",
                "accountId": "111122223333",
                "userName": "RoleForModelCopy"
            },
            "attributes": {
                "creationDate": "2024-05-07T21:46:28Z",
                "mfaAuthenticated": "false"
            }
        },
        "invokedBy": "bedrock.amazonaws.com"
    },
    "eventTime": "2024-05-07T21:49:44Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "CreateGrant",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "bedrock.amazonaws.com",
    "userAgent": "bedrock.amazonaws.com",
    "requestParameters": {
        "granteePrincipal": "bedrock.amazonaws.com",
        "retiringPrincipal": "bedrock.amazonaws.com",
        "keyId": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE",
        "operations": [
            "Decrypt",
            "CreateGrant",
            "GenerateDataKey",
            "DescribeKey"
        ]
    },
    "responseElements": {
        "grantId": "0ab0ac0d0b000f00ea00cc0a0e00fc00bce000c000f0000000c0bc0a0000aaafSAMPLE",
        "keyId": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE"
    },
    "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
    "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
    "readOnly": false,
    "resources": [
        {
            "accountId": "111122223333",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "111122223333",
    "eventCategory": "Management"
}
```

## トレーニング、検証、出力データの暗号化
<a name="encryption-custom-job-data"></a>

Amazon Bedrock を使用してモデルカスタマイズジョブを実行する場合、入力ファイルを Amazon S3 バケットに保存します。ジョブが完了すると、Amazon Bedrock はジョブの作成時に指定した S3 バケットに出力メトリクスファイルを保存し、その結果のカスタムモデルアーティファクトは によって制御される S3 バケットに保存しますAWS。

出力ファイルは、S3 バケットの暗号化設定で暗号化されます。これらは、S3 バケットの設定方法に応じて、[SSE-S3 サーバー側の暗号化](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingServerSideEncryption.html)または [AWS KMS SSE-KMS 暗号化](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html)で暗号化されます。

# インポートされたカスタムモデルの暗号化
<a name="encryption-import-model"></a>

Amazon Bedrock では、同じ暗号化アプローチを使用する 2 つの方法によるカスタムモデルの作成がサポートされています。カスタムモデルは、以下によって管理および保存されますAWS。
+ **カスタムモデルのインポートジョブ** — カスタマイズされたオープンソースの基盤モデル (Mistral AI モデルや Llama モデルなど) をインポートする場合。
+ **カスタムモデルの作成** — SageMaker AI でカスタマイズした Amazon Nova モデルをインポートする場合。

カスタムモデルを暗号化するために、Amazon Bedrock には次のオプションが用意されています。
+ **AWS所有キー** – デフォルトでは、Amazon Bedrock はインポートされたカスタムモデルを AWS所有キーで暗号化します。AWS所有キーを表示、管理、使用したり、その使用を監査したりすることはできません。ただし、データを暗号化するキーを保護するために何らかの操作を行ったり、プログラムを変更したりする必要はありません。詳細については、「AWS Key Management Service デベロッパーガイド」の「[AWS 所有キー](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#aws-owned-cmk)」を参照してください。
+ **カスタマーマネージドキー (CMK)** – カスタマーマネージドキー (CMK) を選択することで、既存のAWS所有の暗号化キーに 2 番目の暗号化レイヤーを追加できます。カスタマーマネージドキーを作成、所有、管理できます。

   この暗号化レイヤーはユーザーが完全に制御できるため、以下のタスクを実行できます: 
  + キーポリシーの確立と維持
  + IAM ポリシーとグラントの確立と維持
  + キーポリシーの有効化と無効化
  + キー暗号化マテリアルのローテーション
  + タグの追加
  + キーエイリアスの作成
  + キー削除のスケジュール

  詳細については、*AWS Key Management Service デベロッパーガイド*の「[Customer managed keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)」を参照してください。

**注記**  
インポートするすべてのカスタムモデルについて、Amazon Bedrock はAWS所有キーを使用して保管時の暗号化を自動的に有効にし、顧客データを無償で保護します。カスタマーマネージドキーを使用する場合、AWS KMS料金が適用されます。料金の詳細については、「[AWS Key Management Service 料金表](https://docs.aws.amazon.com/)」を参照してください。

## Amazon Bedrock が で許可を使用する方法AWS KMS
<a name="import-model-kms-grants"></a>

カスタマーマネージドキーを指定して、インポートされたモデルを暗号化する場合。Amazon Bedrock は、[CreateGrant](https://docs.aws.amazon.com//kms/latest/APIReference/API_CreateGrant.html) [リクエストを送信することで、インポートされたモデル](https://docs.aws.amazon.com/)に関連付けられた**プライマリ**AWS KMSグラントをユーザーに代わって作成しますAWS KMS。このグラントにより、Amazon Bedrock はカスタマーマネージドキーにアクセスして使用できます。の許可AWS KMSは、Amazon Bedrock に顧客のアカウントの KMS キーへのアクセスを許可するために使用されます。

このプライマリグラントは、Amazon Bedrock が、以下の内部オペレーションでカスタマーマネージドキーを使用するために必要です。
+ [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html) リクエストを に送信AWS KMSして、ジョブの作成時に入力した対称カスタマーマネージド KMS キー ID が有効であることを確認します。
+ [GenerateDataKey](https://docs.aws.amazon.com//kms/latest/APIReference/API_GenerateDataKey.html) リクエストと [Decrypt](https://docs.aws.amazon.com//kms/latest/APIReference/API_Decrypt.html) リクエストを AWS KMS に送信して、カスタマーマネージドキーによって暗号化されるデータキーを生成し、暗号化されたデータキーを復号してモデルアーティファクトの暗号化に使用する。
+ [CreateGrant](https://docs.aws.amazon.com//kms/latest/APIReference/API_CreateGrant.html) リクエストを に送信AWS KMSして、モデルインポートの非同期実行とオンデマンド推論のために、上記のオペレーションのサブセット (`DescribeKey`、`GenerateDataKey`、`Decrypt`) を使用してスコープダウンされたセカンダリ許可を作成します。
+ Amazon Bedrock は、サービスにより [RetireGrant](https://docs.aws.amazon.com//kms/latest/APIReference/API_RetireGrant.html) リクエストが送信されるように、グラントの作成中に廃止するプリンシパルを指定する。

カスタマーマネージドAWS KMSキーへのフルアクセスがあります。許可へのアクセスを取り消すには、「*AWS デベロッパーガイド*」の「[付与の使用停止と取り消し](https://docs.aws.amazon.com//kms/latest/developerguide/grant-manage.html#grant-delete)」の手順に従います。または、キーポリシーを変更すると、いつでもカスタマーマネージドキーへのサービスのアクセスを削除できます。これを行うと、Amazon Bedrock はキーで暗号化されたインポート済みモデルにアクセスできなくなります。

### インポートされたカスタムモデルのプライマリグラントとセカンダリグラントのライフサイクル
<a name="import-model-kms-grants-lifecycle"></a>
+ **プライマリグラント**の有効期間は長く、関連するカスタムモデルがまだ使用されている限り、アクティブのままです。インポートされたカスタムモデルが削除されると、対応するプライマリグラントは自動的に廃止されます。
+ **セカンダリグラント**は、有効期間が短く、Amazon Bedrock が顧客に代わって実行するオペレーションが完了するとすぐに自動的に廃止されます。例えば、カスタムモデルのインポートジョブが完了すると、Amazon Bedrock がインポートされたカスタムモデルを暗号化することを許可したセカンダリグラントはすぐに廃止されます。

# カスタマーマネージドキー (CMK) を使用する
<a name="import-model-using-cmk"></a>

インポートしたカスタムモデルをカスタマーマネージドキーを使用して暗号化する予定の場合は、次の手順を実行してください。

1. AWS Key Management Service でカスタマーマネージドキーを作成します。

1. インポートしたカスタムモデルを、指定したロールが作成および使用するためのアクセス許可を定めた[リソースベースのポリシー](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies_identity-vs-resource.html)をアタッチします。

**カスタマーマネージドキーを作成する**

まず、`CreateKey` のアクセス許可が与えられていることを確認します。次に、[キーの作成](https://docs.aws.amazon.com//kms/latest/developerguide/create-keys.html)の手順に従って、AWS KMSコンソールまたは [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) API オペレーションでカスタマーマネージドキーを作成します。必ず対称暗号化キーを作成してください。

キーを作成すると、そのキーの `Arn` が返されます。これを、カスタムモデルインポート機能でカスタムモデルをインポートするときに、`importedModelKmsKeyId ` として使用できます。

**キーポリシーを作成してカスタマーマネージドキーにアタッチする**

キーポリシーとは、カスタマーマネージドキーにアタッチして、そのキーへのアクセスを制御する[リソースベースのポリシー](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies_identity-vs-resource.html)です。すべてのカスタマーマネージドキーには、キーポリシーが 1 つだけ必要です。このポリシーには、そのキーを使用できるユーザーとその使用方法を決定するステートメントが含まれています。カスタマーマネージドキーを作成する際に、キーポリシーを指定することができます。キーポリシーはいつでも変更できますが、AWS KMS 全体に変更が反映されるまで、多少時間がかかる場合があります。詳細については、「*AWS Key Management Service デベロッパーガイド*」の「[カスタマーマスターキーへのアクセスを制御する](https://docs.aws.amazon.com//kms/latest/developerguide/control-access-overview.html#managing-access)」を参照してください。

**インポートしたカスタムモデルを暗号化する**

カスタマーマネージドキーを使用してインポートされたカスタムモデルを暗号化するには、キーポリシーに次のAWS KMSオペレーションを含める必要があります。
+ [kms:CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html) – [グラントオペレーション](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#terms-grant-operations)による指定された KMS キーへのアクセスを Amazon Bedrock サービスプリンシパルに許可して、カスタマーマネージドキーのグラントを作成します。グラントの詳細については、「*AWS Key Management Service デベロッパーガイド*」の「[Grants in AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)」を参照してください。
**注記**  
また、Amazon Bedrock では廃止プリンシパルを設定し、不要になったグラントを自動的に廃止します。
+ [kms:DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html) – カスタマーマネージドキーの詳細情報を提供して、Amazon Bedrock にキーの検証を許可します。
+ [kms:GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html) – カスタマーマネージドキーの詳細情報を提供して、Amazon Bedrock にユーザーアクセスの検証を許可します。Amazon Bedrock は、生成された暗号文を、インポートしたカスタムモデルとともに保存し、インポートしたカスタムモデルのユーザーに対する追加の検証チェックとして使用します。
+ [kms:Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) – 保存された暗号文を復号して、インポートしたカスタムモデルを暗号化する KMS キーに、ロールが適切にアクセスできることを確認します。

インポートするモデルを暗号化するために使用するロールのキーにアタッチできるポリシーの例は、以下のとおりです。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "KMS key policy for a key to encrypt an imported custom model",
    "Statement": [
        {
            "Sid": "Permissions for model import API invocation role",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:user/role"
            },
            "Action": [
                "kms:Decrypt",
                "kms:GenerateDataKey",
                "kms:DescribeKey",
                "kms:CreateGrant"
            ],
            "Resource": "*"
        }
    ]
}
```

------

**暗号化したカスタムインポートモデルを復号する**

別のカスタマーマネージドキーで既に暗号化されているカスタムモデルをインポートする場合は、次のポリシーに示すように、同じロールに対して `kms:Decrypt` のアクセス許可を追加する必要があります。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "KMS key policy for a key that encrypted a custom imported model",
    "Statement": [
        {
            "Sid": "Permissions for model import API invocation role",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:user/role"
            },
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": "*"
        }
    ]
}
```

------

# Amazon Bedrock サービスの暗号化キーを監視する
<a name="import-model-monitor-encryption-keys"></a>

Amazon Bedrock リソースでAWS KMSカスタマーマネージドキーを使用する場合、 [AWS CloudTrail](https://docs.aws.amazon.com//awscloudtrail/latest/userguide/cloudtrail-user-guide.html)または [Amazon CloudWatch Logs](https://docs.aws.amazon.com//AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) を使用して、Amazon Bedrock が送信するリクエストを追跡できますAWS KMS。

以下は、[CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html) が Amazon Bedrock によって呼び出されたAWS KMSオペレーションをモニタリングしてプライマリグラントを作成するAWS CloudTrailイベントの例です。

```
{
"eventVersion": "1.09",
    "userIdentity": {
"type": "AssumedRole",
        "principalId": "AROAIGDTESTANDEXAMPLE:SampleUser01",
        "arn": "arn:aws:sts::111122223333:assumed-role/RoleForModelImport/SampleUser01",
        "accountId": "111122223333",
        "accessKeyId": "EXAMPLE",
        "sessionContext": {
"sessionIssuer": {
"type": "Role",
                "principalId": "AROAIGDTESTANDEXAMPLE",
                "arn": "arn:aws:iam::111122223333:role/RoleForModelImport",
                "accountId": "111122223333",
                "userName": "RoleForModelImport"
            },
            "attributes": {
"creationDate": "2024-05-07T21:46:28Z",
                "mfaAuthenticated": "false"
            }
        },
        "invokedBy": "bedrock.amazonaws.com"
    },
    "eventTime": "2024-05-07T21:49:44Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "CreateGrant",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "bedrock.amazonaws.com",
    "userAgent": "bedrock.amazonaws.com",
    "requestParameters": {
"granteePrincipal": "bedrock.amazonaws.com",
        "retiringPrincipal": "bedrock.amazonaws.com",
        "keyId": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE",
        "operations": [
            "Decrypt",
            "CreateGrant",
            "GenerateDataKey",
            "DescribeKey"
        ]
    },
    "responseElements": {
"grantId": "0ab0ac0d0b000f00ea00cc0a0e00fc00bce000c000f0000000c0bc0a0000aaafSAMPLE",
        "keyId": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE"
    },
    "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
    "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
    "readOnly": false,
    "resources": [
        {
"accountId": "111122223333",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "111122223333",
    "eventCategory": "Management"
}
```

「[ポリシーの作成](https://docs.aws.amazon.com//kms/latest/developerguide/key-policy-overview.html)」の手順に従って、次のリソースベースのポリシーを KMS キーにアタッチします。このポリシーには、2 つのステートメントが含まれています。

1. ロールがモデルカスタマイズのアーティファクトを暗号化するためのアクセス許可。インポートされたカスタムモデルビルダーロールの ARN を `Principal` フィールドに追加します。

1. インポートされたカスタムモデルをロールが推論で使用するためのアクセス許可。インポートされたカスタムモデルユーザーロールの ARN を `Principal` フィールドに追加します。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "KMS Key Policy",
    "Statement": [
        {
            "Sid": "Permissions for imported model builders",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::123456789012:user/role"
            },
            "Action": [
                "kms:Decrypt",
                "kms:GenerateDataKey",
                "kms:DescribeKey",
                "kms:CreateGrant"
            ],
            "Resource": "*"
        },
        {
            "Sid": "Permissions for imported model users",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::123456789012:user/role"
            },
            "Action": "kms:Decrypt",
            "Resource": "*"
        }
    ]
}
```

------

# Amazon Bedrockデータ自動化での暗号化
<a name="encryption-bda"></a>

 Amazon Bedrockデータ自動化 (BDA) は、暗号化を使用して保管中のデータを保護します。これには、サービスで保存されているブループリント、プロジェクト、抽出されたインサイトが含まれます。BDA には、データを暗号化するためのオプションが 2 つ用意されています。

1. AWS所有キー – デフォルトでは、BDA はAWS所有キーを使用してデータを暗号化します。AWS所有キーを表示、管理、使用したり、その使用を監査したりすることはできません。ただし、データを暗号化するキーを保護するためのアクションの実施やプログラムの変更を行う必要はありません。詳細については、「 Key Management Service デベロッパーガイド」の「 [AWS所有](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk)AWSキー」を参照してください。

1.  カスタマーマネージドキー – 自分で管理するカスタマーマネージドキーを使用してデータを暗号化できます。AWS KMSキーの詳細については、[「 Key Management Service デベロッパーガイド」の「カスタマーマネージド](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)AWSキー」を参照してください。BDA は、Amazon Bedrock コンソールで使用するためのカスタマーマネージドキーをサポートしておらず、API オペレーションのみをサポートしています。

Amazon Bedrockデータオートメーションは、AWS所有キーを使用した保管時の暗号化を無償で自動的に有効にします。カスタマーマネージドキーを使用する場合、AWS KMS料金が適用されます。料金の詳細については、AWS KMS[「 の料金](https://aws.amazon.com/kms/pricing/)」を参照してください。

## で 許可Amazon Bedrockを使用する方法AWS KMS
<a name="encryption-bda-grants"></a>

 invokeDataAutomationAsync を呼び出すときに BDA の暗号化にカスタマーマネージドキーを指定すると、CreateGrant リクエストを送信することで、サービスがユーザーに代わってリソースに関連付けられた許可を作成しますAWS KMS。この権限により、BDA はカスタマーマネージドキーにアクセスして使用できます。

 BDA では、カスタマーマネージドキーの権限を次の内部オペレーションに使用します。
+ DescribeKey — リクエストを に送信AWS KMSして、指定した対称カスタマーマネージドAWS KMSキー ID が有効であることを確認します。
+ GenerateDataKey と Decrypt — にリクエストを送信AWS KMSして、カスタマーマネージドキーによって暗号化されたデータキーを生成し、暗号化されたデータキーを復号して、リソースの暗号化に使用できます。
+ CreateGrant — オペレーションAWS KMSの非同期実行のために、上記のオペレーションのサブセット (DescribeKey、GenerateDataKey、Decrypt) を使用してスコープダウンされたグラントを作成するリクエストを に送信します。

 カスタマーマネージドAWS KMSキーへのフルアクセスがあります。権限へのアクセスを取り消すには、AWS KMS デベロッパーガイドの「権限の取得と取り消し」のステップを実行します。または、カスタマーマネージドキーへのサービスのアクセスを随時削除するには、キーポリシーを変更します。そうすると、BDA ではキーで暗号化されたリソースにアクセスできなくなります。

権限を取り消した後で新しい invokeDataAutomationAsync 呼び出しを開始すると、BDA によって権限が再作成されます。権限は 30 時間後に BDA によって廃止されます。

## カスタマーマネージドキーの作成とキーポリシーのアタッチ
<a name="encryption-bda-creating-keys"></a>

 作成および管理するキーを使用して BDA リソースを暗号化するには、次の一般的なステップを実行します。

1.  (前提条件) IAM ロールに CreateKey アクションのアクセス権があることを確認します。

1.  [ 「キーの作成](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)」の手順に従って、 AWS KMSコンソールまたは CreateKey オペレーションを使用してカスタマーマネージドキーを作成します。

1.  キーを作成すると、invokeDataAutomationAsync オペレーションなど、キーを使用する必要があるオペレーション (例: BDA でプロジェクトまたはブループリントを作成する場合) に使用できる ARN が返されます。

1.  必要なアクセス権を持つキーポリシーを作成してキーにアタッチします。キーポリシーを作成するには、「 AWS KMSデベロッパーガイド」の[「キーポリシーの作成](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-create.html)」の手順に従います。

## Amazon BedrockData Automation リソースのアクセス許可とキーポリシー
<a name="encryption-bda-key-policies.title"></a>

 AWS KMSキーを作成したら、キーポリシーをアタッチします。BDA リソースを暗号化するキーには、次の AWS KMS アクションが使用されます。

1.  kms:CreateGrant – InvokeDataAutomationAsync に必要なグラントオペレーションを通じて指定されたキーへの BDA サービスアクセスを許可することで、カスタマーマネージドAWS KMSキーのグラントを作成します。

1.  kms:DescribeKey – カスタマーマネージドキーの詳細を提供し、BDA がキーを検証できるようにします。

1.  kms:GenerateDataKey – カスタマーマネージドキーの詳細情報を提供して、BDA にユーザーアクセスの検証を許可します。

1.  kms:Decrypt – 保存された暗号文を復号して、ロールが BDA リソースを暗号化するAWS KMSキーに適切にアクセスできることを確認します。

Amazon Bedrock Data Automation のキーポリシー

 カスタマーマネージドキーを使用して BDA リソースを暗号化するには、キーポリシーに次のステートメントを含め、`${account-id}`、`${region}`、`${key-id}` を特定の値に置き換えます。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "KMS key policy for a key to encrypt data for BDA resource",
    "Statement": [
        {
            "Sid": "Permissions for encryption of data for BDA resources",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/Role"
            },
            "Action": [
                "kms:Decrypt",
                "kms:GenerateDataKey",
                "kms:DescribeKey",
                "kms:CreateGrant"
            ],
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "kms:ViaService": [
                        "bedrock.us-east-1.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

**IAM ロールのアクセス許可**

BDA とやり取りするために使用される IAM ロールには、次のアクセス許可AWS KMSが必要です。`${region}`、`${account-id}`、および を特定の値`${key-id}`に置き換えます。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kms:GenerateDataKey",
                "kms:Decrypt",
                "kms:DescribeKey",
                "kms:CreateGrant"
            ],
            "Resource": "arn:aws:kms:us-east-1:123456789012:key/KeyId",
            "Condition": {
                "StringLike": {
                    "kms:ViaService": [
                        "bedrock.us-east-1.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

## Amazon Bedrock オートメーションの暗号化コンテキスト
<a name="encryption-bda-context"></a>

BDA は、すべての暗号化オペレーションで同じAWS KMS暗号化コンテキストを使用します。キーは で、`aws:bedrock:data-automation-customer-account-id`値はAWSアカウント ID です。暗号化コンテキストの例を以下に示します。

```
"encryptionContext": {
     "bedrock:data-automation-customer-account-id": "account id"
}
```

**暗号化コンテキストによるモニタリングに暗号化コンテキストを使用する**  
対称カスタマーマネージドキーを使用してデータを暗号化する場合は、監査レコードとログで暗号化コンテキストを使用して、カスタマーマネージドキーがどのように使用されているかを特定することもできます。暗号化コンテキストは、 AWS CloudTrailまたは Amazon CloudWatch Logs によって生成されたログにも表示されます。

**暗号化コンテキストを使用して顧客マネージドキーへのアクセスを制御する**  
対称カスタマーマネージドキー (CMK) へのアクセスを制御するための条件として、キーポリシーと IAM ポリシー内の暗号化コンテキストを使用することもできます。付与する際に、暗号化コンテキストの制約を使用することもできます。BDA は、権限に関わる暗号化コンテキスト制約を使用して、アカウントまたはリージョン内のカスタマーマネージドキーへのアクセスを制御します。グラントの制約では、指定された暗号化コンテキストの使用をグラントが許可するオペレーションが必要です。

次に、特定の暗号化コンテキストのカスタマーマネージドキーへのアクセスを付与するキーポリシーステートメントの例を示します。このポリシーステートメントの条件では、暗号化コンテキストを指定する暗号化コンテキスト制約がグラントに必要です。

```
[
    {
        "Sid": "Enable DescribeKey, Decrypt, GenerateDataKey",
        "Effect": "Allow",
        "Principal": {
            "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
        },
        "Action": ["kms:DescribeKey", "kms:Decrypt", "kms:GenerateDataKey"],
        "Resource": "*"
    },
    {
        "Sid": "Enable CreateGrant",
        "Effect": "Allow",
        "Principal": {
            "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
        },
        "Action": "kms:CreateGrant",
        "Resource": "*",
        "Condition": {
            "StringLike": {
                "kms:EncryptionContext:aws:bedrock:data-automation-customer-account-id": "111122223333"
            },
            "StringEquals": {
                "kms:GrantOperations": ["Decrypt", "DescribeKey", "GenerateDataKey"]
            }
        }
    }
]
```

## Amazon Bedrockデータ自動化の暗号化キーのモニタリング
<a name="encryption-bda-monitoring"></a>

 Amazon BedrockData Automation リソースでAWS KMSカスタマーマネージドキーを使用する場合、 [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)または [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) を使用してAmazon Bedrock、Data Automation が送信するリクエストを追跡できますAWS KMS。以下は、[CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html) が Amazon BedrockData Automation によって呼び出されるAWS KMSオペレーションをモニタリングしてプライマリグラントを作成するAWS CloudTrailイベントの例です。

```
{
    "eventVersion": "1.09",
        "userIdentity": {
        "type": "AssumedRole",
        "principalId": "AROAIGDTESTANDEXAMPLE:SampleUser01",
        "arn": "arn:aws:sts::111122223333:assumed-role/RoleForDataAutomation/SampleUser01",
        "accountId": "111122223333",
        "accessKeyId": "EXAMPLE",
        "sessionContext": {
        "sessionIssuer": {
        "type": "Role",
        "principalId": "AROAIGDTESTANDEXAMPLE",
        "arn": "arn:aws:iam::111122223333:role/RoleForDataAutomation",
        "accountId": "111122223333",
        "userName": "RoleForDataAutomation"
        },
        "attributes": {
        "creationDate": "2024-05-07T21:46:28Z",
        "mfaAuthenticated": "false"
    }
    },
    "invokedBy": "bedrock.amazonaws.com"
    },
    "eventTime": "2024-05-07T21:49:44Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "CreateGrant",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "bedrock.amazonaws.com",
    "userAgent": "bedrock.amazonaws.com",
    "requestParameters": {
    "granteePrincipal": "bedrock.amazonaws.com",
    "retiringPrincipal": "bedrock.amazonaws.com",
    "keyId": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE",
     "constraints": {
            "encryptionContextSubset": {
                "aws:bedrock:data-automation-customer-account-id": "000000000000"
            }
        },
    "operations": [
    "Decrypt",
    "CreateGrant",
    "GenerateDataKey",
    "DescribeKey"
    ]
    },
    "responseElements": {
    "grantId": "0ab0ac0d0b000f00ea00cc0a0e00fc00bce000c000f0000000c0bc0a0000aaafSAMPLE",
    "keyId": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE"
    },
    "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
    "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
    "readOnly": false,
    "resources": [
    {
    "accountId": "111122223333",
    "type": "AWS::KMS::Key",
    "ARN": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE"
    }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "111122223333",
    "eventCategory": "Management"
}
```

# エージェントリソースの暗号化
<a name="encryption-agents-new"></a>

デフォルトでは、保管中のデータを暗号化することで、機密データの保護に伴う運用のオーバーヘッドと複雑な作業を軽減できます。同時に、セキュリティを重視したアプリケーションを構築することで、暗号化のコンプライアンスと規制の厳格な要件を満たすことができます。

Amazon Bedrock は、デフォルトの AWS が所有するキーを使用して、エージェントの情報を自動的に暗号化します。これには、コントロールプレーンデータとセッションデータが含まれます。AWS 所有のキーの使用を表示、管理、監査することはできません。詳細については、「[AWS owned keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk)」を参照してください。

この暗号化レイヤーは無効にはできませんが、AWS 所有のキーの代わりにカスタマーマネージドキーを使用してエージェントの情報を暗号化することもできます。Amazon Bedrock は、デフォルトの AWS 所有の暗号化の代わりに、お客様が作成、所有、管理できる対称カスタマーマネージドキー (CMK) の使用をサポートしています。詳細については、「[カスタマーマネージドキー](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)」を参照してください。

**重要**  
Amazon Bedrock は、AWS 所有のキーを使用してエージェントのセッション情報を無料で自動的に暗号化します。
カスタマーマネージドキーを使用する場合、AWS KMS 料金が適用されます。料金の詳細については、「[AWS Key Management Service の料金](https://aws.amazon.com/kms/pricing/)」を参照してください。
2025 年 1 月 22 日より*前に*作成したエージェントについて、エージェントリソースの暗号化にカスタマーマネージドキーを使用する場合は、「[2025 年 1 月 22 日より前に作成されたエージェントのエージェントリソースの暗号化](encryption-agents.md)」の手順に従います。

# カスタマーマネージドキー (CMK) を使用したエージェントリソースの暗号化
<a name="cmk-agent-resources"></a>

エージェントの構築時に指定された次のエージェント情報を使用し、いつでもカスタマーマネージドキーを作成してエージェントの情報を暗号化できます。

**注記**  
次のエージェントリソースは、2025 年 1 月 22 日以降に作成されたエージェントに対してのみ暗号化されます。


****  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/cmk-agent-resources.html)

カスタマーマネージドキーを使用するには、以下のステップを実行します。

1.  AWS Key Management Serviceでカスタマーマネージドキーを作成します。

1. キーポリシーを作成してカスタマーマネージドキーにアタッチする

## カスタマーマネージドキーを作成する
<a name="create-cmk-agent"></a>

対称カスタマーマネージドキーは、 AWS マネジメントコンソールまたは AWS Key Management Service APIs を使用して作成できます。

 まず、`CreateKey` アクセス許可があることを確認し、「*AWS Key Management Service デベロッパーガイド*」の「[対称カスタマーマネージドキーの作成](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk)」のステップに従います。

**キーポリシー** - キーポリシーは、カスタマーマネージドキーへのアクセスを制御します。すべてのカスタマーマネージドキーには、キーポリシーが 1 つだけ必要です。このポリシーには、そのキーを使用できるユーザーとその使用方法を決定するステートメントが含まれています。キーポリシーは、カスタマーマネージドキーの作成時に指定できます。詳細については、「*AWS Key Management Service デベロッパーガイド*」の「[カスタマーマネージドキーへのアクセスを管理する](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html)」を参照してください。

2025 年 1 月 22 日以降にエージェントを作成し、カスタマーマネージドキーを使用してエージェントの情報を暗号化する場合は、エージェント API オペレーションを呼び出すユーザーまたはロールに、キーポリシーで次のアクセス許可が付与されていることを確認してください。
+ [kms:GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html) - AWS KMS の外部で使用する一意の対称データキーを返します。
+ [kms:Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) – KMS キーによって暗号化された暗号文を復号します。

キーの作成は、エージェントの作成時に `customerEncryptionKeyArn` として使用できるキーの `Arn` を返します。

## キーポリシーを作成してカスタマーマネージドキーにアタッチする
<a name="attach-policy-agent"></a>

カスタマーマネージドキーを使用してエージェントリソースを暗号化する場合、Amazon Bedrock がユーザーに代わってエージェントリソースを暗号化および復号できるように、ID ベースのポリシーとリソースベースのポリシーを設定する必要があります。

**ID ベースのポリシー**

ユーザーに代わってエージェントリソースを暗号化および復号するエージェント API を呼び出すアクセス許可を持つ IAM ロールまたはユーザーに、次の ID ベースのポリシーをアタッチします。このポリシーは、API コールを行うユーザーが AWS KMS アクセス許可を持っていることを検証します。`${region}`、`${account-id}`、`${agent-id}`、`${key-id}` を適切な値に置き換えます。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "EncryptAgents",
            "Effect": "Allow",
            "Action": [
                "kms:GenerateDataKey",
                "kms:Decrypt"
            ],
            "Resource": "arn:aws:kms:us-east-1:123456789012:key/${key-id}",
            "Condition": {
                "StringEquals": {
                    "kms:EncryptionContext:aws:bedrock:arn": "arn:aws:bedrock:us-east-1:123456789012:agent/${agent-id}"
                }
            }
        }
    ]
}
```

------

**リソースベースのポリシー**

Amazon S3 のスキーマが暗号化されているアクショングループを作成する*場合にのみ*、次のリソースベースのポリシーを AWS KMS キーにアタッチします。他のユースケースでは、リソースベースのポリシーをアタッチする必要はありません。

次のリソースベースのポリシーをアタッチするには、必要に応じてアクセス許可の範囲を変更し、`${region}`、`${account-id}`、`${agent-id}`、`${key-id}` を適切な値に置き換えます。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Allow account root to modify the KMS key, not used by Amazon Bedrock.",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:root"
            },
            "Action": "kms:*",
            "Resource": "arn:aws:kms:us-east-1:123456789012:key/${key-id}"
        },
        {
            "Sid": "Allow Amazon Bedrock to encrypt and decrypt Agent resources on behalf of authorized users",
            "Effect": "Allow",
            "Principal": {
                "Service": "bedrock.amazonaws.com"
            },
            "Action": [
                "kms:GenerateDataKey",
                "kms:Decrypt"
            ],
            "Resource": "arn:aws:kms:us-east-1:123456789012:key/${key-id}",
            "Condition": {
                "StringEquals": {
                    "kms:EncryptionContext:aws:bedrock:arn": "arn:aws:bedrock:us-east-1:123456789012:agent/${agent-id}"
                }
            }
        }
    ]
}
```

------

## カスタマーマネージドキーの変更
<a name="change-cmk"></a>

Amazon Bedrock エージェントは、*DRAFT* エージェントに関連付けられたカスタマーマネージドキーが変更された場合、またはカスタマーマネージドキーから AWS 所有キーに移行した場合、バージョニングされたエージェントの再暗号化をサポートしていません。*DRAFT* リソースのデータのみが新しいキーで再暗号化されます。

バージョニングされたエージェントのキーを使用して本番データを処理する場合、そのキーのアクセス許可を削除しないでください。

バージョンで使用されているキーを表示および確認するには、[GetAgentVersion](https://docs.aws.amazon.com//bedrock/latest/APIReference/API_agent_GetAgentVersion.html) を呼び出し、レスポンスで `customerEncryptionKeyArn` を確認します。

# カスタマーマネージドキー (CMK) を使用してエージェントセッションを暗号化する
<a name="ltm-permissions"></a>

エージェントのメモリを有効にしていて、カスタマーマネージドキーを使用してエージェントセッションを暗号化する場合は、次のキーポリシーと呼び出し元 ID IAM アクセス許可を設定して、カスタマーマネージドキーを設定する必要があります。

**カスタマーマネージドキーポリシー**

Amazon Bedrock は、これらのアクセス許可を使用して暗号化されたデータキーを生成し、生成されたキーを使用してエージェントメモリを暗号化します。Amazon Bedrock には、生成されたデータキーを異なる暗号化コンテキストで再暗号化するためのアクセス許可も必要です。再暗号化アクセス許可は、カスタマーマネージドキーが別のカスタマーマネージドキーまたはサービス所有キー間で移行する場合にも使用されます。詳細については、「[Hierarchical Keyring](https://docs.aws.amazon.com//database-encryption-sdk/latest/devguide/use-hierarchical-keyring.html)」を参照してください。

`$region`、`account-id` および `${caller-identity-role}` を適切な値に置き換えます。

```
{
    "Version": "2012-10-17",		 	 	 
    {
        "Sid": "Allow access for bedrock to enable long term memory",
        "Effect": "Allow",
        "Principal": {
            "Service": [
                "bedrock.amazonaws.com",
            ],
        },
        "Action": [
            "kms:GenerateDataKeyWithoutPlainText",
            "kms:ReEncrypt*"
        ],
        "Condition": {
            "StringEquals": {
                "aws:SourceAccount": "$account-id"
            },
            "ArnLike": {
                "aws:SourceArn": "arn:aws:bedrock:$region:$account-id:agent-alias/*"
            }
        }
        "Resource": "*"
    },
    {
        "Sid": "Allow the caller identity control plane permissions for long term memory",
        "Effect": "Allow", 
        "Principal": {
            "AWS": "arn:aws:iam::${account-id}:role/${caller-identity-role}"
        },
        "Action": [
            "kms:GenerateDataKeyWithoutPlainText",
            "kms:ReEncrypt*"
        ],
        "Resource": "*",
        "Condition": {
            "StringLike": {
                "kms:EncryptionContext:aws-crypto-ec:aws:bedrock:arn": "arn:aws:bedrock:${region}:${account-id}:agent-alias/*"
            }
        }
    },
    {
        "Sid": "Allow the caller identity data plane permissions to decrypt long term memory",
        "Effect": "Allow",
        "Principal": {
            "AWS": "arn:aws:iam::${account-id}:role/${caller-identity-role}"
        },
        "Action": [
            "kms:Decrypt"
        ],
        "Resource": "*",
        "Condition": {
            "StringLike": {
                "kms:EncryptionContext:aws-crypto-ec:aws:bedrock:arn": "arn:aws:bedrock:${region}:${account-id}:agent-alias/*",
                "kms:ViaService": "bedrock.$region.amazonaws.com" 
            }
        }
    }
}
```

**エージェントメモリを暗号化および復号化するための IAM アクセス許可**

メモリが有効になっているエージェントの KMS キーを設定するには、identity calling Agents API に次の IAM アクセス許可が必要です。Amazon Bedrock エージェントは、これらのアクセス許可を使用して、API がモデルを管理、トレーニング、デプロイするための上記のキーポリシーに記載されているアクセス許可を発信者 ID に付与されているかを確認します。エージェントを呼び出す API の場合、Amazon Bedrock エージェントは発信者 ID の `kms:Decrypt` アクセス許可を使用してメモリを復号します。

`$region`、`account-id` および `${key-id}` を適切な値に置き換えます。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AgentsControlPlaneLongTermMemory",
            "Effect": "Allow",
            "Action": [
                "kms:GenerateDataKeyWithoutPlaintext", 
                "kms:ReEncrypt*"
            ],
            "Resource": "arn:aws:kms:us-east-1:123456789012:key/KeyId",
            "Condition": {
                "StringLike": {
                    "kms:EncryptionContext:aws-crypto-ec:aws:bedrock:arn": "arn:aws:bedrock:us-east-1:123456789012:agent-alias/*"
                }
            }
        },
        {
            "Sid": "AgentsDataPlaneLongTermMemory",
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": "arn:aws:kms:us-east-1:123456789012:key/KeyId",
            "Condition": {
                "StringLike": {
                    "kms:EncryptionContext:aws-crypto-ec:aws:bedrock:arn": "arn:aws:bedrock:us-east-1:123456789012:agent-alias/*"
                }
            }
        }
    ]
}
```

------

# エージェントの予防的セキュリティのベストプラクティス
<a name="security-best-practice-agents"></a>

Amazon Bedrock サービスに関する以下のベストプラクティスは、セキュリティインシデントの防止に役立ちます。

**安全な接続を使用**

`https://` で始まる接続など、転送時に機密情報を安全に保つには、常に暗号化された接続を使用してください。

**リソースへの最小権限のアクセスを実装する**

Amazon Bedrock リソースのカスタムポリシーを作成する際は、タスクの実行に必要なアクセス許可のみを付与します。最小限の許可セットから開始し、必要に応じて追加許可を付与することをお勧めします。最小特権アクセスの実装は、エラーや悪意のある攻撃から生じる可能性のあるリスクと影響を軽減するために不可欠です。詳細については、「[Amazon Bedrock のためのアイデンティティとアクセス管理](security-iam.md)」を参照してください。

**顧客データを含むエージェントリソースには、PII を含めません。**

エージェントリソースを作成、更新、削除する際に ([CreateAgent](https://docs.aws.amazon.com//bedrock/latest/APIReference/API_agent_CreateAgent.html) を使用する場合など)、アクショングループ名やナレッジベース名などのカスタマーマネージドキーの使用をサポートしていないフィールドには、個人を特定できる情報 (PII) を含め内でください。カスタマーマネージドキーの使用をサポートするフィールドのリストについては、「[カスタマーマネージドキー (CMK) を使用したエージェントリソースの暗号化](cmk-agent-resources.md)」を参照してください。

# 2025 年 1 月 22 日より前に作成されたエージェントのエージェントリソースの暗号化
<a name="encryption-agents"></a>

**重要**  
2025 年 1 月 22 日*以降*にエージェントを作成した場合は、「[エージェントリソースの暗号化](encryption-agents-new.md)」の手順に従います。

Amazon Bedrock はエージェントのセッション情報を暗号化します。デフォルトでは、Amazon Bedrock は AWSマネージドキーを使用してこのデータを暗号化します。オプションで、カスタマーマネージドキーを使用して、エージェントアーティファクトを暗号化することもできます。

詳細についてはAWS KMS keys、「 *AWS Key Management Serviceデベロッパーガイド*」の[「カスタマーマネージドキー](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)」を参照してください。

カスタム KMS キーを使用してエージェントとのセッションを暗号化する場合、Amazon Bedrock がユーザーに代わってエージェントリソースを暗号化および復号できるように、次の ID ベースのポリシーとリソースベースのポリシーを設定する必要があります。

1. `InvokeAgent` 呼び出しを行うアクセス許可を持つ IAM ロールまたはユーザーに次の ID ベースのポリシーをアタッチします。このポリシーは、`InvokeAgent` 呼び出しを行うユーザーに KMS アクセス許可があることを確認します。*\$1\$1region\$1*、*\$1\$1account-id\$1*、*\$1\$1agent-id\$1*、\$1\$1*key-id\$1* を適切な値に置き換えます。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "EncryptDecryptAgents",
               "Effect": "Allow",
               "Action": [
                   "kms:GenerateDataKey",
                   "kms:Decrypt"
               ],
               "Resource": "arn:aws:kms:us-east-1:123456789012:key/key-id",
               "Condition": {
                   "StringEquals": {
                       "kms:EncryptionContext:aws:bedrock:arn": "arn:aws:bedrock:us-east-1:123456789012:agent/agent-id"
                   }
               }
           }
       ]
   }
   ```

------

1. 次のリソースベースのポリシーを KMS キーにアタッチします。必要に応じてアクセス許可の範囲を変更します。*\$1\$1region\$1*、*\$1\$1account-id\$1*、*\$1\$1agent-id\$1*、\$1\$1*key-id\$1* を適切な値に置き換えます。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowRootModifyKMSKey",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::123456789012:root"
               },
               "Action": "kms:*",
               "Resource": "arn:aws:kms:us-east-1:123456789012:key/KeyId"
           },
           {
               "Sid": "AllowBedrockEncryptAgent",
               "Effect": "Allow",
               "Principal": {
                   "Service": "bedrock.amazonaws.com"
               },
               "Action": [
                   "kms:GenerateDataKey",
                   "kms:Decrypt"
               ],
               "Resource": "arn:aws:kms:us-east-1:123456789012:key/KeyId",
               "Condition": {
                   "StringEquals": {
                       "kms:EncryptionContext:aws:bedrock:arn": "arn:aws:bedrock:us-east-1:123456789012:agent/AgentId"
                   }
               }
           },
           {
               "Sid": "AllowRoleEncryptAgent",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::123456789012:role/Role"
               },
               "Action": [
                   "kms:GenerateDataKey*",
                   "kms:Decrypt"
               ],
               "Resource": "arn:aws:kms:us-east-1:123456789012:key/KeyId"
           },
           {
               "Sid": "AllowAttachmentPersistentResources",
               "Effect": "Allow",
               "Principal": {
                   "Service": "bedrock.amazonaws.com"
               },
               "Action": [
                   "kms:CreateGrant",
                   "kms:ListGrants",
                   "kms:RevokeGrant"
               ],
               "Resource": "*",
               "Condition": {
                   "Bool": {
                       "kms:GrantIsForAWSResource": "true"
                   }
               }
           }
       ]
   }
   ```

------

# Amazon Bedrock Flows リソースの暗号化
<a name="encryption-flows"></a>

Amazon Bedrock は、保管中のデータを暗号化します。デフォルトでは、Amazon Bedrock はこのデータを暗号化するのに AWS マネージドキーを使用します。必要に応じて、カスタマーマネージドキーを使用して、データを暗号化することもできます。

詳細についてはAWS KMS keys、「 *AWS Key Management Serviceデベロッパーガイド*」の[「カスタマーマネージドキー](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)」を参照してください。

カスタム KMS キーを使用してデータを暗号化する場合は、Amazon Bedrock がユーザーに代わってデータを暗号化および復号化できるように、次のアイデンティティベースポリシーとリソースベースポリシーを設定する必要があります。

1. Amazon Bedrock Flows API コールを実行するアクセス許可がある IAM ロールまたはユーザーに、次のアイデンティティベースポリシーをアタッチします。このポリシーは、Amazon Bedrock Flows コールを実行するユーザーに KMS アクセス許可が付与されていることを検証します。*\$1\$1region\$1*、*\$1\$1account-id\$1*、*\$1\$1flow-id\$1*、*\$1\$1key-id\$1* を適切な値に置き換えます。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "EncryptFlow",
               "Effect": "Allow",
               "Action": [
                   "kms:GenerateDataKey",
                   "kms:Decrypt"
               ],
               "Resource": "arn:aws:kms:us-east-1:123456789012:key/${key-id}",
               "Condition": {
                   "StringEquals": {
                       "kms:EncryptionContext:aws:bedrock-flows:arn": "arn:aws:bedrock:us-east-1:123456789012:flow/${flow-id}",
                       "kms:ViaService": "bedrock.us-east-1.amazonaws.com"
                   }
               }
           }
       ]
   }
   ```

------

1. 次のリソースベースのポリシーを KMS キーにアタッチします。必要に応じてアクセス許可の範囲を変更します。*\$1IAM-USER/ROLE-ARN\$1*、*\$1\$1region\$1*、*\$1\$1account-id\$1*、*\$1\$1flow-id\$1*、*\$1\$1key-id\$1* を適切な値に置き換えます。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowRootModifyKMSId",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::123456789012:root"
               },
               "Action": "kms:*",
               "Resource": "arn:aws:kms:us-east-1:123456789012:key/KeyId"
           },
           {
               "Sid": "AllowRoleUseKMSKey",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::123456789012:role/RoleName"
               },
               "Action": [
                   "kms:GenerateDataKey",
                   "kms:Decrypt"
               ],
               "Resource": "arn:aws:kms:us-east-1:123456789012:key/${key-id}",
               "Condition": {
                   "StringEquals": {
                       "kms:EncryptionContext:aws:bedrock-flows:arn": "arn:aws:bedrock:us-east-1:123456789012:flow/FlowId",
                       "kms:ViaService": "bedrock.us-east-1.amazonaws.com"
                   }
               }
           }
       ]
   }
   ```

------

1. [フローの実行](flows-create-async.md)には、[フローを作成および管理するためのアクセス許可を持つサービスロール](flows-permissions.md)に、次のアイデンティティベースのポリシーをアタッチします。このポリシーは、サービスロールに AWS KMSアクセス許可があることを検証します。*region*、*account-id*、*flow-id*、*key-id* を適切な値に置き換えます。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "EncryptionFlows",
               "Effect": "Allow",
               "Action": [
                   "kms:GenerateDataKey",
                   "kms:Decrypt"
               ],
               "Resource": "arn:aws:kms:us-east-1:123456789012:key/key-id",
               "Condition": {
                   "StringEquals": {
                       "kms:EncryptionContext:aws:bedrock-flows:arn": "arn:aws:bedrock:us-east-1:123456789012:flow/flow-id",
                       "kms:ViaService": "bedrock.us-east-1.amazonaws.com"
                   }
               }
           }
       ]
   }
   ```

------

# ナレッジベースリソースの暗号化
<a name="encryption-kb"></a>

Amazon Bedrock はナレッジベースに関連するリソースを暗号化します。デフォルトでは、Amazon Bedrock は AWS所有のキーを使用してこのデータを暗号化します。オプションで、カスタマーマネージドキーを使用して、モデルアーティファクトを暗号化することもできます。

KMS キーによる暗号化は、以下のプロセスで行うことができます。
+ データソースの取り込み中の一時的なデータストレージ
+ Amazon Bedrock にベクトルデータベースをセットアップさせた場合の情報の OpenSearch サービスへの提供
+ ナレッジベースへのクエリの実行

ナレッジベースが使用する以下のリソースは KMS キーで暗号化できます。暗号化する場合は、KMS キーを復号するためのアクセス許可を追加する必要があります。
+ Amazon S3 バケットに保存されているデータソース
+ サードパーティーのベクトルストア

詳細については AWS KMS keys、「 *AWS Key Management Service デベロッパーガイド*」の[「カスタマーマネージドキー](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)」を参照してください。

**注記**  
Amazon Bedrock ナレッジベースは、転送中の TLS 暗号化をプロバイダーが許可およびサポートするサードパーティーのデータソースコネクタおよびベクトルストアとの通信に TLS 暗号化を使用します。

**Topics**
+ [データインジェスト時の一時データストレージの暗号化](#encryption-kb-ingestion)
+ [Amazon OpenSearch Service に渡される情報の暗号化](#encryption-kb-oss)
+ [Amazon S3 Vectors に渡される情報の暗号化](#encryption-kb-s3-vector)
+ [ナレッジベース取得の暗号化](#encryption-kb-runtime)
+ [Amazon S3 のデータソースの AWS KMS キーを復号するアクセス許可](#encryption-kb-ds)
+ [ナレッジベースを含むベクトルストアのシー AWS Secrets Manager クレットを復号するアクセス許可](#encryption-kb-3p)
+ [AWS KMS 暗号化を使用した Bedrock Data Automation (BDA) のアクセス許可](#encryption-kb-bda)

## データインジェスト時の一時データストレージの暗号化
<a name="encryption-kb-ingestion"></a>

ナレッジベースのデータインジェストジョブを設定すると、カスタム KMS キーでジョブを暗号化できます。

データソースの取り込みプロセスで一時データストレージの AWS KMS キーを作成できるようにするには、Amazon Bedrock サービスロールに次のポリシーをアタッチします。サンプル値を独自の AWS リージョン、アカウント ID、および AWS KMS キー ID に置き換えます。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kms:GenerateDataKey",
                "kms:Decrypt"
            ],
            "Resource": [
                "arn:aws:kms:us-east-1:123456789012:key/key-id"
            ]
        }
    ]
}
```

------

## Amazon OpenSearch Service に渡される情報の暗号化
<a name="encryption-kb-oss"></a>

Amazon Bedrock にナレッジベース用のベクトルストアを Amazon OpenSearch Service 内に作成させることを選択した場合、Amazon Bedrock はユーザーが選択した KMS キーを Amazon OpenSearch Service に渡して暗号化することができます。Amazon OpenSearch Service での暗号化の詳細については、「[Amazon OpenSearch Service での暗号化](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-encryption.html)」を参照してください。

## Amazon S3 Vectors に渡される情報の暗号化
<a name="encryption-kb-s3-vector"></a>

Amazon Bedrock にナレッジベース用の S3 ベクトルバケットとベクトルストアを Amazon S3 Vectors 内に作成させることを選択した場合、Amazon Bedrock はユーザーが選択した KMS キーを Amazon S3 Vectors に渡して暗号化することができます。Amazon S3 Vectors での暗号化の詳細については、「[Amazon S3 Vectors による暗号化](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-vectors-bucket-encryption.html)」を参照してください。

## ナレッジベース取得の暗号化
<a name="encryption-kb-runtime"></a>

ナレッジベースに KMS キーでクエリを実行することにより、レスポンスを生成するセッションを暗号化することができます。そのためには、[RetrieveAndGenerate](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html) リクエストを行うときに KMS キーの ARN を `kmsKeyArn` フィールドに入力します。次のポリシーをアタッチし、サンプル値を独自の AWS リージョン、アカウント ID、 AWS KMS キー ID に置き換えて、Amazon Bedrock がセッションコンテキストを暗号化できるようにします。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "bedrock.amazonaws.com"
            },
            "Action": [
                "kms:GenerateDataKey",
                "kms:Decrypt"
            ],
            "Resource": "arn:aws:kms:us-east-1:123456789012:key/key-id"
        }
    ]
}
```

------

## Amazon S3 のデータソースの AWS KMS キーを復号するアクセス許可
<a name="encryption-kb-ds"></a>

ナレッジベースのデータソースを Amazon S3 バケットに保存します。これらのドキュメントを保存中に暗号化するには、Amazon S3 SSE-S3 サーバーサイド暗号化オプションを使用できます。このオプションでは、オブジェクトは Amazon S3 サービスによって管理されるサービスキーで暗号化されます。

詳細については、**「Amazon Simple Storage Service ユーザーガイド」の「[Amazon S3 マネージドキーによるサーバー側の暗号化 (SSE-S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingServerSideEncryption.html)」を参照してください。

Amazon S3 のデータソースをカスタム AWS KMS キーで暗号化した場合は、Amazon Bedrock サービスロールに次のポリシーをアタッチして、Amazon Bedrock がキーを復号できるようにします。サンプル値を独自の AWS リージョン、アカウント ID、および AWS KMS キー ID に置き換えます。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "KMS:Decrypt"
            ],
            "Resource": [
                "arn:aws:kms:us-east-1:123456789012:key/key-id"
            ],
            "Condition": {
                "StringEquals": {
                    "kms:ViaService": [
                        "s3.us-east-1.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

## ナレッジベースを含むベクトルストアのシー AWS Secrets Manager クレットを復号するアクセス許可
<a name="encryption-kb-3p"></a>

ナレッジベースを含むベクトルストアが AWS Secrets Manager シークレットで設定されている場合は、「シークレットの暗号化と復号」の手順に従って、カスタム AWS KMS キーでシークレットを暗号化できます。 [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/security-encryption.html)

そうする場合、Amazon Bedrock サービスロールに次のポリシーをアタッチして、サービスロールがキーを復号化できるようにします。サンプル値を独自の AWS リージョン、アカウント ID、および AWS KMS キー ID に置き換えます。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": [
                "arn:aws:kms:us-east-1:123456789012:key/key-id"
            ]
        }
    ]
}
```

------

## AWS KMS 暗号化を使用した Bedrock Data Automation (BDA) のアクセス許可
<a name="encryption-kb-bda"></a>

BDA を使用してカスタマーマネージド AWS KMS キーでマルチモーダルコンテンツを処理する場合、標準のアクセス許可を超えて追加の AWS KMS アクセス許可が必要です。

Amazon Bedrock サービスロールに次のポリシーをアタッチして、暗号化されたマルチメディアファイルを BDA が操作できるようにします。サンプル値を独自の AWS リージョン、アカウント ID、および AWS KMS キー ID に置き換えます。

```
{
    "Sid": "KmsPermissionStatementForBDA",
    "Effect": "Allow",
    "Action": [
        "kms:GenerateDataKey",
        "kms:Decrypt",
        "kms:DescribeKey",
        "kms:CreateGrant"
    ],
    "Resource": "arn:aws:kms:region:account-id:key/key-id",
    "Condition": {
        "StringEquals": {
            "aws:ResourceAccount": "account-id",
            "kms:ViaService": "bedrock.region.amazonaws.com"
        }
    }
}
```

BDA 固有のアクセス許可には、暗号化されたオーディオ、ビデオ、イメージファイルを BDA が処理するために必要な `kms:DescribeKey`アクションと `kms:CreateGrant`アクションが含まれます。

# Amazon VPC と AWS PrivateLink を使用してデータを保護する
<a name="usingVPC"></a>

データへのアクセスを制御するには、[Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) で仮想プライベートクラウド (VPC) を使用することをお勧めします。VPC の使用はデータを保護し、[VPC フローログ](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html)を使って AWS ジョブコンテナに出入りするすべてのネットワークトラフィックを監視することもできます。

データをインターネット経由で利用できないように VPC を設定し、代わりに [AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/what-is-privatelink.html) で VPC インターフェイスエンドポイントを作成してデータへのプライベート接続を確立することで、データをさらに保護することができます。

以下は、VPC を使用してデータを保護できる Amazon Bedrock の機能の一部です。
+ モデルのカスタマイズ – [(オプション) VPC を使用してモデルのカスタマイズのジョブを保護する](custom-model-job-access-security.md#vpc-model-customization)
+ バッチ推論 – [VPC を使用してバッチ推論ジョブを保護する](batch-vpc.md)
+ Amazon Bedrock ナレッジベース – [インターフェイスエンドポイント (AWS PrivateLink) を使用して Amazon OpenSearch Serverless にアクセスする](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-vpc.html)

## VPC をセットアップする
<a name="create-vpc"></a>

「[Get started with Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-getting-started.html)」および「[VPC の作成](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html)」のガイダンスに従って、「[デフォルト VPC](https://docs.aws.amazon.com/vpc/latest/userguide/default-vpc.html)」を使用するか、新しい VPC を作成できます。

VPC を作成する際、標準 Amazon S3 URL (例: `http://s3-aws-region.amazonaws.com/training-bucket`) が解決されるように、エンドポイントルートテーブルにデフォルトの DNS 設定を使うことをお勧めします。

以下のトピックでは、AWS PrivateLink を使用して VPC エンドポイントを設定する方法と、S3 ファイルへのアクセスを保護するために VPC を使用するユースケースの例を示します。

**Topics**
+ [VPC をセットアップする](#create-vpc)
+ [インターフェイス VPC エンドポイント (AWS PrivateLink) を使用して、VPC と Amazon Bedrock 間にプライベート接続を作成します。](vpc-interface-endpoints.md)
+ [(例) VPC を使用して Amazon S3 データへのデータアクセスを制限する](vpc-s3.md)

# インターフェイス VPC エンドポイント (AWS PrivateLink) を使用して、VPC と Amazon Bedrock 間にプライベート接続を作成します。
<a name="vpc-interface-endpoints"></a>

を使用して AWS PrivateLink 、VPC と Amazon Bedrock の間にプライベート接続を作成できます。インターネットゲートウェイ、NAT デバイス、VPN 接続、または Direct Connect 接続を使用せずに、VPC 内にあるかのように Amazon Bedrock にアクセスできます。VPC のインスタンスは、パブリック IP アドレスがなくても Amazon Bedrock にアクセスできます。

このプライベート接続を確立するには、 AWS PrivateLinkを利用した*インターフェイスエンドポイント*を作成します。インターフェイスエンドポイントに対して有効にする各サブネットにエンドポイントネットワークインターフェイスを作成します。これらは、Amazon Bedrock 宛てのトラフィックのエントリポイントとして機能するリクエスタ管理型ネットワークインターフェイスです。

詳細については、「 *AWS PrivateLink ガイド*」の[「Access AWS のサービス through AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/privatelink-access-aws-services.html)」を参照してください。

## Amazon Bedrock VPC エンドポイントに関する考慮事項
<a name="vpc-endpoint-considerations"></a>

Amazon Bedrock のインターフェイスエンドポイントを設定する前に、「AWS PrivateLink ガイド」の「[考慮事項](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#considerations-interface-endpoints)」を確認してください。

Amazon Bedrock は、VPC エンドポイントを介して以下の API コールを実行できます。


****  

| Category | エンドポイントサフィックス | 
| --- | --- | 
| [Amazon Bedrock コントロールプレーン API アクション](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Amazon_Bedrock.html) | bedrock | 
| [Amazon Bedrock ランタイム API アクション](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Amazon_Bedrock_Runtime.html) | bedrock-runtime | 
| Amazon Bedrock Mantle API アクション | bedrock-mantle | 
| [Amazon Bedrock エージェント Build-time API アクション](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Agents_for_Amazon_Bedrock.html) | bedrock-agent | 
| [Amazon Bedrock エージェントランタイム API アクション](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Agents_for_Amazon_Bedrock_Runtime.html) | bedrock-agent-runtime | 

アベイラビリティーゾーン****

Amazon Bedrock および Amazon Bedrock エージェントエンドポイントは、複数のアベイラビリティーゾーンで使用できます。

## Amazon Bedrock 用のインターフェイスエンドポイントを作成する
<a name="vpc-endpoint-create"></a>

Amazon Bedrock のインターフェイスエンドポイントは、Amazon VPC コンソールまたは AWS Command Line Interface () を使用して作成できますAWS CLI。詳細については、「*AWS PrivateLink ガイド*」の「[インターフェイスエンドポイントを作成](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint-aws)」を参照してください。

以下のサービス名のいずれかを使用して Amazon Bedrock のインターフェイスエンドポイントを作成します。
+ `com.amazonaws.region.bedrock`
+ `com.amazonaws.region.bedrock-runtime`
+ `com.amazonaws.region.bedrock-mantle`
+ `com.amazonaws.region.bedrock-agent`
+ `com.amazonaws.region.bedrock-agent-runtime`

 エンドポイントを作成後に、プライベート DNS ホスト名を有効にするオプションがあります。VPC エンドポイントの作成時に VPC コンソールで [プライベート DNS 名を有効にする] を選択して、この設定名を有効にします。

エンドポイントのプライベート DNS を有効にすると、リージョンのデフォルト DNS 名 ( など) を使用して、Amazon Bedrock への API リクエストを実行できます。次の例は、デフォルトのリージョン DNS 名の形式を示しています。
+ `bedrock.region.amazonaws.com`
+ `bedrock-runtime.region.amazonaws.com`
+ `bedrock-mantle.region.api.aws`
+ `bedrock-agent.region.amazonaws.com`
+ `bedrock-agent-runtime.region.amazonaws.com`

## インターフェイスエンドポイントのエンドポイントポリシーを作成する
<a name="vpc-endpoint-policy"></a>

エンドポイントポリシーは、インターフェイスエンドポイントにアタッチできる IAM リソースです。デフォルトのエンドポイントポリシーでは、インターフェイスエンドポイント経由での Amazon Bedrock へのフルアクセスが許可されています。VPC から Amazon Bedrock への許可されたアクセスをコントロールするには、カスタムエンドポイントポリシーをインターフェイスエンドポイントにアタッチします。

エンドポイントポリシーは以下の情報を指定します。
+ アクションを実行できるプリンシパル (AWS アカウント、IAM ユーザー、IAM ロール)。
+ 実行可能なアクション。
+ このアクションを実行できるリソース。

詳細については、*AWS PrivateLink ガイド*の[Control access to services using endpoint policies (エンドポイントポリシーを使用してサービスへのアクセスをコントロールする)](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html)を参照してください。

**例: Amazon Bedrock アクションの VPC エンドポイントポリシー**  
以下は、カスタムエンドポイントポリシーの例です。インターフェイスエンドポイントにアタッチされると、このリソースベースのポリシーは、すべてのリソースですべてのプリンシパルに、リストされている Amazon Bedrock アクションへのアクセス権を付与します。

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Principal": "*",
         "Effect": "Allow",
         "Action": [
            "bedrock:InvokeModel",
            "bedrock:InvokeModelWithResponseStream"
         ],
         "Resource":"*"
      }
   ]
}
```

------

**例: Amazon Bedrock Mantle アクションの VPC エンドポイントポリシー**  
以下は、カスタムエンドポイントポリシーの例です。このリソースベースのポリシーをインターフェイスエンドポイントにアタッチすると、すべてのリソースのすべてのプリンシパルに対して、リストされている Amazon Bedrock Mantle アクションへのアクセスが許可されます。

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Principal": "*",
         "Effect": "Allow",
         "Action": [
            "bedrock-mantle:CreateInference"
         ],
         "Resource":"*"
      }
   ]
}
```

# (例) VPC を使用して Amazon S3 データへのデータアクセスを制限する
<a name="vpc-s3"></a>

VPC を使用して、Amazon S3 バケット内のデータへのアクセスを制限できます。セキュリティを強化するために、インターネットアクセスなしで VPC を設定し、 AWS PrivateLinkで VPC のエンドポイントを作成することができます。リソースベースのポリシーを VPC エンドポイントまたは S3 バケットにアタッチすることで、アクセスを制限することもできます。

**Topics**
+ [Amazon S3 VPC エンドポイントを作成する](#vpc-s3-create)
+ [(オプション) IAM ポリシーを使用して S3 ファイルへのアクセスを制限する](#vpc-policy-rbp)

## Amazon S3 VPC エンドポイントを作成する
<a name="vpc-s3-create"></a>

インターネットアクセスなしで VPC を設定する場合は、モデルのカスタマイズジョブが、トレーニングデータと検証データを保存し、モデルアーティファクトを保存する S3 バケットにアクセスできるように、[Amazon S3 VPC エンドポイント](https://docs.aws.amazon.com/AmazonS3/latest/userguide/privatelink-interface-endpoints.html)を作成する必要があります。

「[Create a gateway endpoint for Amazon S3](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html#create-gateway-endpoint-s3)」の手順に従って、S3 VPC エンドポイントを作成します。

**注記**  
VPC にデフォルトの DNS 設定を使用しない場合は、エンドポイントルートテーブルを設定することで、トレーニングジョブのデータの場所の URL が解決されるようにする必要があります。VPC エンドポイントルートテーブルについては、 「[Routing for Gateway endpoints](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpce-gateway.html#vpc-endpoints-routing)」を参照してください。

## (オプション) IAM ポリシーを使用して S3 ファイルへのアクセスを制限する
<a name="vpc-policy-rbp"></a>

[リソースベースのポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_identity-vs-resource.html)を使用して、S3 ファイルへのアクセスをより厳密に制御できます。次のタイプのリソースベースのポリシーのどの組み合わせでも使用できます。
+ **エンドポイントポリシー** – VPC エンドポイントにエンドポイントポリシーをアタッチして、VPC エンドポイントを介したアクセスを制限できます。デフォルトのエンドポイントポリシーでは、VPC のすべてのユーザーまたはサービスに対して Amazon S3 へのフルアクセスが許可されています。エンドポイントの作成中または作成後に、オプションでリソースベースのポリシーをエンドポイントにアタッチして、エンドポイントが特定のバケットにアクセスできるようにする、または特定の IAM ロールのみがエンドポイントにアクセスできるようにするなど、制限を追加できます。例については、「[Edit the VPC endpoint policy](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html#edit-vpc-endpoint-policy-s3)」を参照してください。

  以下は、指定するバケットへのアクセスのみを許可するように VPC エンドポイントにアタッチできるポリシーの例です。

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "RestrictAccessToTrainingBucket",
              "Effect": "Allow",
              "Principal": "*",
              "Action": [
                  "s3:GetObject",
                  "s3:ListBucket"
              ],
              "Resource": [
                  "arn:aws:s3:::bucket",
                  "arn:aws:s3:::bucket/*"
              ]
          }
      ]
  }
  ```

------
+ **バケットポリシー** – バケットポリシーを S3 バケットにアタッチして、そのバケットへのアクセスを制限できます。バケットポリシーを作成するには、「[バケットポリシーの使用](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-policies.html)」の手順に従います。VPC からのトラフィックへのアクセスを制限するには、条件キーを使用して VPC 自体、VPC エンドポイント、または VPC の IP アドレスを指定します。[aws:sourceVpc](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcevpc)、[aws:sourceVpce](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcevpce)、または [aws:VpcSourceIp](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-vpcsourceip) の条件キーを使用することができます。

  以下は、S3 バケットにアタッチできるポリシーの例で、VPC からでない限り、バケットへのすべてのトラフィックを拒否します。

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "RestrictAccessToOutputBucket",
              "Effect": "Deny",
              "Principal": "*",
              "Action": [
                  "s3:GetObject",
                  "s3:PutObject",
                  "s3:ListBucket"
              ],
              "Resource": [
                  "arn:aws:s3:::bucket",
                  "arn:aws:s3:::bucket/*"
              ],
              "Condition": {
                  "StringNotEquals": {
                      "aws:sourceVpc": "vpc-11223344556677889"
                  }
              }
          }
      ]
  }
  ```

------

  その他の例については、「[Control access using bucket policies](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html#bucket-policies-s3)」を参照してください。

# Amazon Bedrock のためのアイデンティティとアクセス管理
<a name="security-iam"></a>

AWS Identity and Access Management (IAM) は、管理者が AWS リソースへのアクセスを安全に制御 AWS のサービス するのに役立つ です。IAM 管理者は、誰を*認証* (サインインを許可) し、誰に Amazon Bedrockリソースの使用を*承認する* (アクセス許可を付与する) かを制御します。IAM は、追加料金なしで使用できる AWS のサービス です。

**Topics**
+ [オーディエンス](#security_iam_audience)
+ [アイデンティティを使用した認証](#security_iam_authentication)
+ [ポリシーを使用したアクセスの管理](#security_iam_access-manage)
+ [Amazon Bedrock で IAM が機能する仕組み](security_iam_service-with-iam.md)
+ [Amazon Bedrock のアイデンティティベースのポリシー例](security_iam_id-based-policy-examples.md)
+ [プロジェクトでの IAM ポリシーの管理](security-iam-projects.md)
+ [AWS Amazon Bedrock の マネージドポリシー](security-iam-awsmanpol.md)
+ [サービスロール](security-iam-sr.md)
+ [Amazon S3 バケットへのアクセスを設定する](s3-bucket-access.md)
+ [Amazon Bedrock のアイデンティティとアクセスに関するトラブルシューティング](security_iam_troubleshoot.md)

## オーディエンス
<a name="security_iam_audience"></a>

 AWS Identity and Access Management (IAM) の使用方法は、ロールによって異なります。
+ **サービスユーザー** - 機能にアクセスできない場合は、管理者にアクセス許可をリクエストします (「[Amazon Bedrock のアイデンティティとアクセスに関するトラブルシューティング](security_iam_troubleshoot.md)」を参照)。
+ **サービス管理者** - ユーザーアクセスを決定し、アクセス許可リクエストを送信します (「[Amazon Bedrock で IAM が機能する仕組み](security_iam_service-with-iam.md)」を参照)
+ **IAM 管理者** - アクセスを管理するためのポリシーを作成します (「[Amazon Bedrock のアイデンティティベースのポリシー例](security_iam_id-based-policy-examples.md)」を参照)

## アイデンティティを使用した認証
<a name="security_iam_authentication"></a>

認証とは、ID 認証情報 AWS を使用して にサインインする方法です。、IAM ユーザー AWS アカウントのルートユーザー、または IAM ロールを引き受けることで認証される必要があります。

 AWS IAM アイデンティティセンター (IAM Identity Center)、シングルサインオン認証、Google/Facebook 認証情報などの ID ソースからの認証情報を使用して、フェデレーティッド ID としてサインインできます。サインインの詳細については、「*AWS サインイン ユーザーガイド*」の「[AWS アカウントにサインインする方法](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html)」を参照してください。

プログラムによるアクセスの場合、 は SDK と CLI AWS を提供してリクエストを暗号化して署名します。詳細については、「*IAM ユーザーガイド*」の「[API リクエストに対するAWS 署名バージョン 4](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html)」を参照してください。

### AWS アカウント ルートユーザー
<a name="security_iam_authentication-rootuser"></a>

 を作成するときは AWS アカウント、すべての AWS のサービス および リソースへの完全なアクセス権を持つ AWS アカウント *ルートユーザー*と呼ばれる 1 つのサインインアイデンティティから始めます。日常的なタスクには、ルートユーザーを使用しないことを強くお勧めします。ルートユーザー認証情報を必要とするタスクについては、「*IAM ユーザーガイド*」の「[ルートユーザー認証情報が必要なタスク](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)」を参照してください。

### フェデレーテッドアイデンティティ
<a name="security_iam_authentication-federated"></a>

ベストプラクティスとして、人間のユーザーが一時的な認証情報 AWS のサービス を使用して にアクセスするには、ID プロバイダーとのフェデレーションを使用する必要があります。

*フェデレーティッド ID* は、エンタープライズディレクトリ、ウェブ ID プロバイダー、または ID Directory Service ソースの認証情報 AWS のサービス を使用して にアクセスするユーザーです。フェデレーテッドアイデンティティは、一時的な認証情報を提供するロールを引き受けます。

アクセスを一元管理する場合は、 AWS IAM アイデンティティセンターをお勧めします。詳細については、「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[IAM アイデンティティセンターとは](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)」を参照してください。

### IAM ユーザーとグループ
<a name="security_iam_authentication-iamuser"></a>

*[IAM ユーザー](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)*は、特定の個人やアプリケーションに対する特定のアクセス許可を持つアイデンティティです。長期認証情報を持つ IAM ユーザーの代わりに一時的な認証情報を使用することをお勧めします。詳細については、*IAM ユーザーガイド*の[「ID プロバイダーとのフェデレーションを使用して にアクセスする必要がある AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp)」を参照してください。

[https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html)は、IAM ユーザーの集合を指定し、大量のユーザーに対するアクセス許可の管理を容易にします。詳細については、「*IAM ユーザーガイド*」の「[IAM ユーザーに関するユースケース](https://docs.aws.amazon.com/IAM/latest/UserGuide/gs-identities-iam-users.html)」を参照してください。

### IAM ロール
<a name="security_iam_authentication-iamrole"></a>

*[IAM ロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)*は、特定のアクセス許可を持つアイデンティであり、一時的な認証情報を提供します。ユーザー[から IAM ロール (コンソール) に切り替えるか、 または API オペレーションを呼び出すことで、ロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html)を引き受けることができます。 AWS CLI AWS 詳細については、「*IAM ユーザーガイド*」の「[ロールを引き受けるための各種方法](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html)」を参照してください。

IAM ロールは、フェデレーションユーザーアクセス、一時的な IAM ユーザーのアクセス許可、クロスアカウントアクセス、クロスサービスアクセス、および Amazon EC2 で実行するアプリケーションに役立ちます。詳細については、*IAM ユーザーガイド* の [IAM でのクロスアカウントリソースアクセス](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) を参照してください。

## ポリシーを使用したアクセスの管理
<a name="security_iam_access-manage"></a>

でアクセスを制御する AWS には、ポリシーを作成し、ID AWS またはリソースにアタッチします。ポリシーは、アイデンティティまたはリソースに関連付けられたときにアクセス許可を定義します。 は、プリンシパルがリクエストを行うときにこれらのポリシー AWS を評価します。ほとんどのポリシーは JSON ドキュメント AWS として に保存されます。JSON ポリシードキュメントの詳細については、「*IAM ユーザーガイド*」の「[JSON ポリシー概要](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json)」を参照してください。

管理者は、ポリシーを使用して、どの**プリンシパル**がどの**リソース**に対して、どのような**条件**で**アクション**を実行できるかを定義することで、誰が何にアクセスできるかを指定します。

デフォルトでは、ユーザーやロールにアクセス許可はありません。IAM 管理者は IAM ポリシーを作成してロールに追加し、このロールをユーザーが引き受けられるようにします。IAM ポリシーは、オペレーションの実行方法を問わず、アクセス許可を定義します。

### アイデンティティベースのポリシー
<a name="security_iam_access-manage-id-based-policies"></a>

アイデンティティベースのポリシーは、アイデンティティ (ユーザー、グループ、またはロール) にアタッチできる JSON アクセス許可ポリシードキュメントです。これらのポリシーは、アイデンティティがどのリソースに対してどのような条件下でどのようなアクションを実行できるかを制御します。アイデンティティベースポリシーの作成方法については、*IAM ユーザーガイド* の [カスタマー管理ポリシーでカスタム IAM アクセス許可を定義する](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) を参照してください。

アイデンティティベースのポリシーは、*インラインポリシー* (単一の ID に直接埋め込む) または*管理ポリシー* (複数の ID にアタッチされたスタンドアロンポリシー) にすることができます。管理ポリシーとインラインポリシーのいずれかを選択する方法については、「*IAM ユーザーガイド*」の「[管理ポリシーとインラインポリシーのいずれかを選択する](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-choosing-managed-or-inline.html)」を参照してください。

### リソースベースのポリシー
<a name="security_iam_access-manage-resource-based-policies"></a>

リソースベースのポリシーは、リソースに添付する JSON ポリシードキュメントです。例としては、IAM *ロール信頼ポリシー*や Amazon S3 *バケットポリシー*などがあります。リソースベースのポリシーをサポートするサービスでは、サービス管理者はポリシーを使用して特定のリソースへのアクセスを制御できます。リソースベースのポリシーでは、[プリンシパルを指定する](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html)必要があります。

リソースベースのポリシーは、そのサービス内にあるインラインポリシーです。リソースベースのポリシーでは、IAM の AWS マネージドポリシーを使用できません。

### その他のポリシータイプ
<a name="security_iam_access-manage-other-policies"></a>

AWS は、より一般的なポリシータイプによって付与されるアクセス許可の上限を設定できる追加のポリシータイプをサポートしています。
+ **アクセス許可の境界** – アイデンティティベースのポリシーで IAM エンティティに付与することのできるアクセス許可の数の上限を設定します。詳細については、「*IAM ユーザーガイド*」の「[IAM エンティティのアクセス許可境界](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html)」を参照してください。
+ **サービスコントロールポリシー (SCP)** - AWS Organizations内の組織または組織単位の最大のアクセス許可を指定します。詳細については、「*AWS Organizations ユーザーガイド*」の「[サービスコントロールポリシー](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html)」を参照してください。
+ **リソースコントロールポリシー (RCP)** – は、アカウント内のリソースで利用できる最大数のアクセス許可を定義します。詳細については、「*AWS Organizations ユーザーガイド*」の「[リソースコントロールポリシー (RCP)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html)」を参照してください。
+ **セッションポリシー** – ロールまたはフェデレーションユーザーの一時セッションを作成する際にパラメータとして渡される高度なポリシーです。詳細については、「*IAM ユーザーガイド*」の「[セッションポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session)」を参照してください。

### 複数のポリシータイプ
<a name="security_iam_access-manage-multiple-policies"></a>

1 つのリクエストに複数のタイプのポリシーが適用されると、結果として作成されるアクセス許可を理解するのがさらに難しくなります。が複数のポリシータイプが関与する場合にリクエストを許可するかどうか AWS を決定する方法については、*「IAM ユーザーガイド*」の[「ポリシー評価ロジック](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html)」を参照してください。

# Amazon Bedrock で IAM が機能する仕組み
<a name="security_iam_service-with-iam"></a>

IAM を使用して Amazon Bedrock へのアクセスを管理する前に、Amazon Bedrock で使用できる IAM 機能について理解しておく必要があります。






**Amazon Bedrock で使用できる IAM の機能**  

| IAM 機能 | Amazon Bedrock サポート | 
| --- | --- | 
|  [アイデンティティベースのポリシー](#security_iam_service-with-iam-id-based-policies)  |   あり  | 
|  [リソースベースのポリシー](#security_iam_service-with-iam-resource-based-policies)  |   なし   | 
|  [ポリシーアクション](#security_iam_service-with-iam-id-based-policies-actions)  |   あり  | 
|  [ポリシーリソース](#security_iam_service-with-iam-id-based-policies-resources)  |   あり  | 
|  [ポリシー条件キー](#security_iam_service-with-iam-id-based-policies-conditionkeys)  |   あり  | 
|  [ACL](#security_iam_service-with-iam-acls)  |   なし   | 
|  [ABAC (ポリシー内のタグ)](#security_iam_service-with-iam-tags)  |   あり  | 
|  [一時的な認証情報](#security_iam_service-with-iam-roles-tempcreds)  |   あり  | 
|  [プリンシパルアクセス権限](#security_iam_service-with-iam-principal-permissions)  |   あり  | 
|  [サービスロール](#security_iam_service-with-iam-roles-service)  |   あり  | 
|  [サービスリンクロール](#security_iam_service-with-iam-roles-service-linked)  |   いいえ   | 

Amazon Bedrock およびその他の AWS のサービスがほとんどの IAM 機能と連携する方法の概要については、IAM *ユーザーガイド*の[AWS 「IAM と連携する のサービス](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)」を参照してください。

## Amazon Bedrock のアイデンティティベースのポリシー
<a name="security_iam_service-with-iam-id-based-policies"></a>

**アイデンティティベースのポリシーのサポート:** あり

アイデンティティベースポリシーは、IAM ユーザー、ユーザーグループ、ロールなど、アイデンティティにアタッチできる JSON 許可ポリシードキュメントです。これらのポリシーは、ユーザーとロールが実行できるアクション、リソース、および条件をコントロールします。アイデンティティベースポリシーの作成方法については、「*IAM ユーザーガイド*」の「[カスタマー管理ポリシーでカスタム IAM アクセス許可を定義する](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)」を参照してください。

IAM アイデンティティベースのポリシーでは、許可または拒否するアクションとリソース、およびアクションを許可または拒否する条件を指定できます。JSON ポリシーで使用できるすべての要素について学ぶには、「*IAM ユーザーガイド*」の「[IAM JSON ポリシーの要素のリファレンス](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html)」を参照してください。

### Amazon Bedrock のアイデンティティベースのポリシー例
<a name="security_iam_service-with-iam-id-based-policies-examples"></a>



Amazon Bedrock のアイデンティティベースポリシーの例を確認するには、「[Amazon Bedrock のアイデンティティベースのポリシー例](security_iam_id-based-policy-examples.md)」を参照してください。

## Amazon Bedrock 内のリソースベースのポリシー
<a name="security_iam_service-with-iam-resource-based-policies"></a>

**リソースベースのポリシーのサポート:** なし 

リソースベースのポリシーは、リソースに添付する JSON ポリシードキュメントです。リソースベースのポリシーには例として、IAM *ロールの信頼ポリシー*や Amazon S3 *バケットポリシー*があげられます。リソースベースのポリシーをサポートするサービスでは、サービス管理者はポリシーを使用して特定のリソースへのアクセスをコントロールできます。ポリシーがアタッチされているリソースの場合、指定されたプリンシパルがそのリソースに対して実行できるアクションと条件は、ポリシーによって定義されます。リソースベースのポリシーで、[プリンシパルを指定する](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html)必要があります。プリンシパルには、アカウント、ユーザー、ロール、フェデレーティッドユーザー、または を含めることができます AWS のサービス。

クロスアカウントアクセスを有効にするには、全体のアカウント、または別のアカウントの IAM エンティティを、リソースベースのポリシーのプリンシパルとして指定します。詳細については、IAM ユーザーガイド**の[IAM でのクロスアカウントリソースアクセス](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html)を参照してください。

## Amazon Bedrock のポリシーアクション
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

**ポリシーアクションのサポート:** あり

管理者は JSON AWS ポリシーを使用して、誰が何にアクセスできるかを指定できます。つまり、どの**プリンシパル**がどの**リソース**に対してどのような**条件下で****アクション**を実行できるかということです。

JSON ポリシーの `Action` 要素にはポリシー内のアクセスを許可または拒否するために使用できるアクションが記述されます。このアクションは関連付けられたオペレーションを実行するためのアクセス許可を付与するポリシーで使用されます。



Amazon Bedrock アクションのリストを確認するには、「*サービス認証リファレンス*」の「[Actions defined by Amazon Bedrock](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html#amazonbedrock-actions-as-permissions)」を参照してください。

Amazon Bedrock のポリシーアクションでは、アクションの前に、次のプレフィックスを使用します。

```
bedrock
```

単一のステートメントで複数のアクションを指定するには、アクションをカンマで区切ります。

```
"Action": [
   "bedrock:action1",
   "bedrock:action2"
]
```





Amazon Bedrock のアイデンティティベースポリシーの例を確認するには、「[Amazon Bedrock のアイデンティティベースのポリシー例](security_iam_id-based-policy-examples.md)」を参照してください。

## Amazon Bedrock のポリシーリソース
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

**ポリシーリソースのサポート:** あり

管理者は JSON AWS ポリシーを使用して、誰が何にアクセスできるかを指定できます。つまり、どの**プリンシパル**がどの**リソース**に対してどのような**条件**下で**アクション**を実行できるかということです。

`Resource` JSON ポリシー要素はアクションが適用されるオブジェクトを指定します。ベストプラクティスとして、[Amazon リソースネーム (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html) を使用してリソースを指定します。リソースレベルのアクセス許可をサポートしないアクションの場合は、ステートメントがすべてのリソースに適用されることを示すために、ワイルドカード (\$1) を使用します。

```
"Resource": "*"
```

Amazon FSx リソースのタイプとその ARN のリストを確認するには、「*サービス認証リファレンス*」の「[Resources defined by Amazon Bedrock](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html#amazonbedrock-resources-for-iam-policies)」を参照してください。どのアクションで各リソースの ARN を指定できるかについては、「[Actions defined by Amazon Bedrock](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html#amazonbedrock-actions-as-permissions)」を参照してください。





一部の Amazon Bedrock API アクションは複数のリソースに対応しています。例えば、[AssociateAgentKnowledgeBase](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_AssociateAgentKnowledgeBase.html) は *AGENT12345* と *KB12345678* にアクセスするため、プリンシパルには両方のリソースにアクセスする許可が必要です。複数リソースを単一ステートメントで指定するには、ARN をカンマで区切ります。

```
"Resource": [
   "arn:aws:bedrock:aws-region:111122223333:agent/AGENT12345",
   "arn:aws:bedrock:aws-region:111122223333:knowledge-base/KB12345678"
]
```

Amazon Bedrock のアイデンティティベースポリシーの例を確認するには、「[Amazon Bedrock のアイデンティティベースのポリシー例](security_iam_id-based-policy-examples.md)」を参照してください。

## Amazon Bedrock のポリシー条件キー
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

**サービス固有のポリシー条件キーのサポート:** あり

管理者は JSON AWS ポリシーを使用して、誰が何にアクセスできるかを指定できます。つまり、どの**プリンシパル**がどの**リソース**に対してどのような**条件下で****アクション**を実行できるかということです。

`Condition` 要素は、定義された基準に基づいてステートメントが実行される時期を指定します。イコールや未満などの[条件演算子](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html)を使用して条件式を作成して、ポリシーの条件とリクエスト内の値を一致させることができます。すべての AWS グローバル条件キーを確認するには、*「IAM ユーザーガイド*」の[AWS 「グローバル条件コンテキストキー](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)」を参照してください。

Amazon Bedrock の条件キーのリストを確認するには、「*サービス認証リファレンス*」の「[Condition Keys for Amazon Bedrock](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html#amazonbedrock-policy-keys)」を参照してください。どのアクションおよびリソースで条件キーを使用できるかについては、「[Actions defined by Amazon Bedrock](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html#amazonbedrock-actions-as-permissions)」を参照してください。

すべての Amazon Bedrock アクションは、Amazon Bedrock モデルをリソースとして使用する条件キーをサポートしています。

Amazon Bedrock のアイデンティティベースポリシーの例を確認するには、「[Amazon Bedrock のアイデンティティベースのポリシー例](security_iam_id-based-policy-examples.md)」を参照してください。

## Amazon Bedrock のACL
<a name="security_iam_service-with-iam-acls"></a>

**ACL のサポート:** なし 

アクセスコントロールリスト (ACL) は、どのプリンシパル (アカウントメンバー、ユーザー、またはロール) がリソースにアクセスするためのアクセス許可を持つかを制御します。ACL はリソースベースのポリシーに似ていますが、JSON ポリシードキュメント形式は使用しません。

## Amazon Bedrock での ABAC
<a name="security_iam_service-with-iam-tags"></a>

**ABAC (ポリシー内のタグ) のサポート:** あり

属性ベースのアクセス制御 (ABAC) は、タグと呼ばれる属性に基づいてアクセス許可を定義する認可戦略です。IAM エンティティと AWS リソースにタグをアタッチし、プリンシパルのタグがリソースのタグと一致するときにオペレーションを許可するように ABAC ポリシーを設計できます。

タグに基づいてアクセスを管理するには、`aws:ResourceTag/key-name`、`aws:RequestTag/key-name`、または `aws:TagKeys` の条件キーを使用して、ポリシーの[条件要素](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)でタグ情報を提供します。

サービスがすべてのリソースタイプに対して 3 つの条件キーすべてをサポートする場合、そのサービスの値は**あり**です。サービスが一部のリソースタイプに対してのみ 3 つの条件キーのすべてをサポートする場合、値は「**部分的**」になります。

ABAC の詳細については、「*IAM ユーザーガイド*」の「[ABAC 認可でアクセス許可を定義する](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html)」を参照してください。ABAC をセットアップする手順を説明するチュートリアルについては、「*IAM ユーザーガイド*」の「[属性ベースのアクセスコントロール (ABAC) を使用する](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html)」を参照してください。

## Amazon Bedrock での一時的な認証情報の使用
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

**一時的な認証情報のサポート:** あり

一時的な認証情報は、 AWS リソースへの短期的なアクセスを提供し、フェデレーションまたはスイッチロールの使用時に自動的に作成されます。長期的なアクセスキーを使用する代わりに、一時的な認証情報を動的に生成 AWS することをお勧めします。詳細については、「*IAM ユーザーガイド*」の「[IAM の一時的なセキュリティ認証情報](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html)」および「[IAM と連携するAWS のサービス](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)」を参照してください。

## Amazon Bedrock のクロスサービスプリンシパル許可
<a name="security_iam_service-with-iam-principal-permissions"></a>

**転送アクセスセッション (FAS) のサポート:** あり

 転送アクセスセッション (FAS) は、 を呼び出すプリンシパルのアクセス許可と AWS のサービス、ダウンストリームサービス AWS のサービス へのリクエストをリクエストする を使用します。FAS リクエストを行う際のポリシーの詳細については、「[転送アクセスセッション](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html)」を参照してください。

## Amazon Bedrock のサービスロール
<a name="security_iam_service-with-iam-roles-service"></a>

**サービスロールのサポート:** あり

 サービスロールとは、サービスがユーザーに代わってアクションを実行するために引き受ける [IAM ロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)です。IAM 管理者は、IAM 内からサービスロールを作成、変更、削除できます。詳細については、IAM ユーザーガイド**の [AWS のサービスに許可を委任するロールを作成する](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)を参照してください。

**警告**  
サービスロールのアクセス許可を変更すると、Amazon Bedrock の機能が破損する可能性があります。Amazon Bedrock が指示する場合以外は、サービスロールを編集しないでください。

## Amazon Bedrock のサービスリンクロール
<a name="security_iam_service-with-iam-roles-service-linked"></a>

**サービスにリンクされたロールのサポート:** なし 

 サービスにリンクされたロールは、 にリンクされたサービスロールの一種です AWS のサービス。サービスは、ユーザーに代わってアクションを実行するロールを引き受けることができます。サービスにリンクされたロールは に表示され AWS アカウント 、サービスによって所有されます。IAM 管理者は、サービスリンクロールのアクセス許可を表示できますが、編集することはできません。

# Amazon Bedrock のアイデンティティベースのポリシー例
<a name="security_iam_id-based-policy-examples"></a>

デフォルトでは、ユーザーとロールには Amazon Bedrock リソースを作成または変更するアクセス許可がありません。IAM 管理者は、リソースで必要なアクションを実行するための権限をユーザーに付与する IAM ポリシーを作成できます。

これらのサンプルの JSON ポリシードキュメントを使用して IAM アイデンティティベースのポリシーを作成する方法については、「*IAM ユーザーガイド*」の「[IAM ポリシーを作成する (コンソール)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html)」を参照してください。

Amazon Bedrock が定義するアクションとリソースタイプ (リソースタイプごとの ARN の形式を含む) の詳細については、「*サービス認証リファレンス*」の「[Actions, Resources, and Condition Keys for Amazon Bedrock](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html)」を参照してください。

**Topics**
+ [ポリシーに関するベストプラクティス](#security_iam_service-with-iam-policy-best-practices)
+ [Amazon Bedrock コンソールを使用する](#security_iam_id-based-policy-examples-console)
+ [自分の権限の表示をユーザーに許可する](#security_iam_id-based-policy-examples-view-own-permissions)
+ [基盤モデルの推論のためのアクセスを拒否する](#security_iam_id-based-policy-examples-deny-inference)
+ [ユーザーにプロビジョニングされたモデルを呼び出すことを許可する](#security_iam_id-based-policy-examples-perform-actions-pt)
+ [Amazon Bedrock エージェントのアイデンティティベースのポリシー例](security_iam_id-based-policy-examples-agent.md)

## ポリシーに関するベストプラクティス
<a name="security_iam_service-with-iam-policy-best-practices"></a>

アイデンティティベースのポリシーは、ユーザーのアカウント内で誰かが Amazon Bedrock リソースを作成、アクセス、または削除できるどうかを決定します。これらのアクションでは、 AWS アカウントに費用が発生する場合があります。アイデンティティベースポリシーを作成したり編集したりする際には、以下のガイドラインと推奨事項に従ってください:
+ ** AWS 管理ポリシーを開始し、最小特権のアクセス許可に移行する** – ユーザーとワークロードにアクセス許可の付与を開始するには、多くの一般的なユースケースにアクセス許可を付与する*AWS 管理ポリシー*を使用します。これらは で使用できます AWS アカウント。ユースケースに固有の AWS カスタマー管理ポリシーを定義することで、アクセス許可をさらに減らすことをお勧めします。詳細については、*IAM ユーザーガイド* の [AWS マネージドポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) または [ジョブ機能のAWS マネージドポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) を参照してください。
+ **最小特権を適用する** – IAM ポリシーでアクセス許可を設定する場合は、タスクの実行に必要な許可のみを付与します。これを行うには、特定の条件下で特定のリソースに対して実行できるアクションを定義します。これは、最小特権アクセス許可とも呼ばれています。IAM を使用して許可を適用する方法の詳細については、*IAM ユーザーガイド* の [IAM でのポリシーとアクセス許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) を参照してください。
+ **IAM ポリシーで条件を使用してアクセスをさらに制限する** - ポリシーに条件を追加して、アクションやリソースへのアクセスを制限できます。たとえば、ポリシー条件を記述して、すべてのリクエストを SSL を使用して送信するように指定できます。条件を使用して、サービスアクションが などの特定の を通じて使用されている場合に AWS のサービス、サービスアクションへのアクセスを許可することもできます CloudFormation。詳細については、*IAM ユーザーガイド* の [IAM JSON ポリシー要素:条件](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) を参照してください。
+ **IAM アクセスアナライザー を使用して IAM ポリシーを検証し、安全で機能的な権限を確保する** - IAM アクセスアナライザー は、新規および既存のポリシーを検証して、ポリシーが IAM ポリシー言語 (JSON) および IAM のベストプラクティスに準拠するようにします。IAM アクセスアナライザーは 100 を超えるポリシーチェックと実用的な推奨事項を提供し、安全で機能的なポリシーの作成をサポートします。詳細については、*IAM ユーザーガイド* の [IAM Access Analyzer でポリシーを検証する](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html) を参照してください。
+ **多要素認証 (MFA) を要求する** – で IAM ユーザーまたはルートユーザーを必要とするシナリオがある場合は AWS アカウント、MFA をオンにしてセキュリティを強化します。API オペレーションが呼び出されるときに MFA を必須にするには、ポリシーに MFA 条件を追加します。詳細については、*IAM ユーザーガイド* の [MFA を使用した安全な API アクセス](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html) を参照してください。

IAM でのベストプラクティスの詳細については、*IAM ユーザーガイド* の [IAM でのセキュリティのベストプラクティス](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) を参照してください。

## Amazon Bedrock コンソールを使用する
<a name="security_iam_id-based-policy-examples-console"></a>

Amazon Bedrock コンソールにアクセスするには、アクセス許可の最小限のセットが必要です。これらのアクセス許可により、 の Amazon Bedrock リソースの詳細を一覧表示および表示できます AWS アカウント。最小限必要な許可よりも制限が厳しいアイデンティティベースのポリシーを作成すると、そのポリシーを持つエンティティ (ユーザーまたはロール) に対してコンソールが意図したとおりに機能しません。

 AWS CLI または AWS API のみを呼び出すユーザーには、最小限のコンソールアクセス許可を付与する必要はありません。代わりに、実行しようとしている API オペレーションに一致するアクションのみへのアクセスが許可されます。

ユーザーとロールが引き続き Amazon Bedrock コンソールを使用できるようにするには、Amazon Bedrock [AmazonBedrockFullAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonBedrockFullAccess) または [AmazonBedrockReadOnly](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonBedrockReadOnly) AWS 管理ポリシーもエンティティにアタッチします。詳細については、「*IAM ユーザーガイド*」の「[ユーザーへのアクセス許可の追加](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console)」を参照してください。

## 自分の権限の表示をユーザーに許可する
<a name="security_iam_id-based-policy-examples-view-own-permissions"></a>

この例では、ユーザーアイデンティティにアタッチされたインラインおよびマネージドポリシーの表示を IAM ユーザーに許可するポリシーの作成方法を示します。このポリシーには、コンソールで、または AWS CLI または AWS API を使用してプログラムでこのアクションを実行するアクセス許可が含まれています。

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewOwnUserInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetUserPolicy",
                "iam:ListGroupsForUser",
                "iam:ListAttachedUserPolicies",
                "iam:ListUserPolicies",
                "iam:GetUser"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "NavigateInConsole",
            "Effect": "Allow",
            "Action": [
                "iam:GetGroupPolicy",
                "iam:GetPolicyVersion",
                "iam:GetPolicy",
                "iam:ListAttachedGroupPolicies",
                "iam:ListGroupPolicies",
                "iam:ListPolicyVersions",
                "iam:ListPolicies",
                "iam:ListUsers"
            ],
            "Resource": "*"
        }
    ]
}
```

## 基盤モデルの推論のためのアクセスを拒否する
<a name="security_iam_id-based-policy-examples-deny-inference"></a>

ユーザーが基盤モデルを呼び出せないようにするには、モデルを直接呼び出す API アクションへのアクセスを拒否する必要があります。次の例は、特定のモデルで推論を実行するアクセス許可を拒否するアイデンティティベースポリシーを示しています。このポリシーは、組織全体でのモデルアクセスを制御するためのサービスコントロールポリシー (SCP) として使用できます。

------
#### [ JSON ]

****  

```
{
          "Version":"2012-10-17",		 	 	 
          "Statement": {
              "Sid": "DenyInference",
              "Effect": "Deny",
              "Action": [
                  "bedrock:InvokeModel",
                  "bedrock:InvokeModelWithResponseStream",
                  "bedrock:CreateModelInvocationJob"
               ],
              "Resource": "arn:aws:bedrock:*::foundation-model/model-id"
          }
      }
```

------

すべての基盤モデルへの推論アクセスを拒否するには、モデル ID に「`*`」を使用してください。`InvokeModel` が拒否された場合、`Converse` や `StartAsyncInvoke` などの他のアクションも自動的にブロックされます。モデル ID のリストについては、「[Amazon Bedrock でサポートされている基盤モデル](models-supported.md)」を参照してください。

## ユーザーにプロビジョニングされたモデルを呼び出すことを許可する
<a name="security_iam_id-based-policy-examples-perform-actions-pt"></a>

以下は、モデル推論でプロビジョニングされたモデルを使用できるように IAM ロールにアタッチできるポリシー例です。例えば、このポリシーを、プロビジョニングされたモデルを使用する許可のみを持つロールにアタッチすることができます。ロールは、プロビジョンドスループットに関する情報を管理または表示することはできません。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ProvisionedThroughputModelInvocation",
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel",
                "bedrock:InvokeModelWithResponseStream"
            ],
            "Resource": "arn:aws:bedrock:us-east-1:123456789012:provisioned-model/my-provisioned-model"
        }
    ]
}
```

------

# Amazon Bedrock エージェントのアイデンティティベースのポリシー例
<a name="security_iam_id-based-policy-examples-agent"></a>

トピックを選択すると、[AI エージェントを使用してアプリケーションのタスクを自動化する](agents.md) のアクションの許可をプロビジョニングするために IAM ロールにアタッチできる IAM ポリシーの例が表示されます。

**Topics**
+ [Amazon Bedrock エージェントに必要なアクセス許可](#iam-agents-ex-all)
+ [ユーザーにエージェントに関する情報の表示と呼び出しを許可する](#security_iam_id-based-policy-examples-perform-actions-agent)
+ [サービス階層へのアクセスを制御する](#security_iam_id-based-policy-examples-service-tiers)

## Amazon Bedrock エージェントに必要なアクセス許可
<a name="iam-agents-ex-all"></a>

IAM アイデンティティが Amazon Bedrock エージェントを使用するには、必要なアクセス許可で設定する必要があります。[AmazonBedrockFullAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonBedrockFullAccess) ポリシーをアタッチして、ロールに適切なアクセス許可を付与できます。

Amazon Bedrock エージェントで使用されるアクションにのみアクセス許可を制限するには、次のアイデンティティベースのポリシーを IAM ロールにアタッチします。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AgentPermissions",
            "Effect": "Allow",
            "Action": [  
                "bedrock:ListFoundationModels",
                "bedrock:GetFoundationModel",
                "bedrock:TagResource", 
                "bedrock:UntagResource", 
                "bedrock:ListTagsForResource", 
                "bedrock:CreateAgent", 
                "bedrock:UpdateAgent", 
                "bedrock:GetAgent", 
                "bedrock:ListAgents", 
                "bedrock:DeleteAgent",
                "bedrock:CreateAgentActionGroup", 
                "bedrock:UpdateAgentActionGroup", 
                "bedrock:GetAgentActionGroup", 
                "bedrock:ListAgentActionGroups", 
                "bedrock:DeleteAgentActionGroup",
                "bedrock:GetAgentVersion",
                "bedrock:ListAgentVersions", 
                "bedrock:DeleteAgentVersion",
                "bedrock:CreateAgentAlias", 
                "bedrock:UpdateAgentAlias",               
                "bedrock:GetAgentAlias",
                "bedrock:ListAgentAliases",
                "bedrock:DeleteAgentAlias",
                "bedrock:AssociateAgentKnowledgeBase",
                "bedrock:DisassociateAgentKnowledgeBase",
                "bedrock:ListAgentKnowledgeBases",
                "bedrock:GetKnowledgeBase",
                "bedrock:ListKnowledgeBases",
                "bedrock:PrepareAgent",
                "bedrock:InvokeAgent",
                "bedrock:AssociateAgentCollaborator",
                "bedrock:DisassociateAgentCollaborator",
                "bedrock:GetAgentCollaborator",
                "bedrock:ListAgentCollaborators",
                "bedrock:UpdateAgentCollaborator"
            ],
            "Resource": "*"
        }
    ]   
}
```

------

[アクション](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-actions)を省略するか、[リソース](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-resources)と[条件キー](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-conditionkeys)を指定することで、アクセス許可をさらに制限できます。IAM ID は、特定のリソースに対して API オペレーションを呼び出すことができます。例えば、[https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_UpdateAgent.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_UpdateAgent.html) オペレーションはエージェントリソースでのみ使用でき、[https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html) オペレーションは、エイリアスリソースでのみ使用できます。特定のリソースタイプ ([https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateAgent.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateAgent.html) など) で使用されない API オペレーションの場合は、`Resource` として \$1 を指定します。ポリシーで指定されたリソースで使用できない API オペレーションを指定すると、Amazon Bedrock はエラーを返します。

## ユーザーにエージェントに関する情報の表示と呼び出しを許可する
<a name="security_iam_id-based-policy-examples-perform-actions-agent"></a>

以下は、ID *AGENT12345* のエージェントに関する情報を表示または編集し、ID *ALIAS12345* のエイリアスとやり取りできるようにするために、IAM ロールにアタッチすることができるポリシーの例です。例えば、エージェントのトラブルシューティングと更新を行う権限のみを与えたいロールに、このポリシーをアタッチすることができます。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "GetAndUpdateAgent",
            "Effect": "Allow",
            "Action": [
                "bedrock:GetAgent",
                "bedrock:UpdateAgent"
            ],
            "Resource": "arn:aws:bedrock:us-east-1:123456789012:agent/AgentId"
        },
        {
            "Sid": "InvokeAgent",
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeAgent"
            ],
            "Resource": "arn:aws:bedrock:us-east-1:123456789012:agent-alias/AgentId/AgentAliasId"
        }
    ]
}
```

------

## サービス階層へのアクセスを制御する
<a name="security_iam_id-based-policy-examples-service-tiers"></a>

Amazon Bedrock サービス階層は、推論リクエストの処理優先度と料金のさまざまなレベルを提供します。デフォルトでは、すべてのサービス層 (優先度、デフォルト、および flex) は、明示的に制限されない限りアクセスが付与される許可リストアプローチに従って、適切な Bedrock アクセス許可を持つユーザーが使用できます。

ただし、組織は、ユーザーがコストを管理したり、使用ポリシーを適用したりするためにアクセスできるサービス階層を制御したい場合があります。`bedrock:ServiceTier` 条件キーで IAM ポリシーを使用して、特定のサービス層へのアクセスを拒否することで、アクセス制限を実装できます。このアプローチにより、どのチームメンバーが「優先度」などのプレミアムサービス階層を使用できるか、「柔軟性」などのコスト最適化階層をきめ細かく制御できます。

次の例は、すべてのサービス層へのアクセスを拒否するアイデンティティベースのポリシーを示しています。このタイプのポリシーは、ユーザーがサービス階層を指定できないようにし、システムのデフォルト動作を強制する場合に便利です。

```
{
    "Version": "2012-10-17", 		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": "bedrock:InvokeModel",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "bedrock:ServiceTier": ["reserved", "priority", "default", "flex"]
                }
            }
        }
    ]
}
```

このポリシーをカスタマイズして、`bedrock:ServiceTier`条件値を変更することで、特定のサービス層のみへのアクセスを拒否できます。たとえば、「デフォルト」と「flex」を許可しながらプレミアム「priority」階層のみを拒否するには、 条件`["priority"]`でのみ を指定します。この柔軟なアプローチにより、組織のコスト管理と運用要件に沿った使用ポリシーを実装できます。サービス階層の詳細については、「」を参照してください[パフォーマンスとコストを最適化するためのサービス階層](service-tiers-inference.md)。

# プロジェクトでの IAM ポリシーの管理
<a name="security-iam-projects"></a>

Amazon Bedrock プロジェクトは IAM ポリシーの直接アタッチをサポートしているため、プロジェクトリソースレベルでアクセスコントロールを管理できます。これにより、IAM ユーザーとロールのポリシーを管理する代わりに使用できます。

## プロジェクトレベルの IAM ポリシーについて
<a name="security-iam-projects-understanding"></a>

プロジェクトレベルの IAM ポリシーでは、次のことができます。
+ **アクセスコントロールを一元化**する: プロジェクトリソースに直接アクセス許可を定義する
+ **管理の簡素化**: 個々のユーザー/ロールポリシーを変更せずにアクセスを更新する
+ **監査が簡単**: プロジェクトのすべてのアクセス許可を 1 か所で表示
+ **管理の委任**: プロジェクト所有者にプロジェクトへのアクセスの管理を許可する

## IAM ポリシーをプロジェクトにアタッチする
<a name="security-iam-projects-attaching"></a>

### アクセスを許可するポリシーをアタッチする
<a name="security-iam-projects-attach-grant"></a>

IAM ポリシーをプロジェクトに直接アタッチして、アクセス許可を付与します。

```
import boto3
import json

iam = boto3.client('iam', region_name='us-east-1')

project_arn = "arn:aws:bedrock-mantle:us-east-1:123456789012:project/proj_abc123"

# Define the identity-based policy document
policy_document = {
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowTeamAlphaAccess",
            "Effect": "Allow",
            "Action": [
                "bedrock-mantle:ListTagsForResources",
                "bedrock-mantle:GetProject"
            ],
            "Resource": project_arn
        }
    ]
}

policy_json = json.dumps(policy_document)

# Create a managed policy
create_response = iam.create_policy(
    PolicyName="TeamAlphaAccessPolicy",
    PolicyDocument=policy_json,
    Description="Grants Team Alpha read access to the Bedrock project"
)

policy_arn = create_response['Policy']['Arn']
print(f"Policy created: {policy_arn}")

# Attach the policy to alice (IAM user)
iam.attach_user_policy(
    UserName="alice",
    PolicyArn=policy_arn
)
print("Policy attached to alice")

# Attach the policy to bob (IAM user)
iam.attach_user_policy(
    UserName="bob",
    PolicyArn=policy_arn
)
print("Policy attached to bob")

# Attach the policy to TeamAlphaRole (IAM role)
iam.attach_role_policy(
    RoleName="TeamAlphaRole",
    PolicyArn=policy_arn
)
print("Policy attached to TeamAlphaRole")
```

### チームへのフルプロジェクトアクセスの付与
<a name="security-iam-projects-full-access"></a>

プロジェクトを管理および使用するためのフルアクセスをチームに許可します。

```
import boto3
import json

iam = boto3.client('iam', region_name='us-east-1')

project_arn = "arn:aws:bedrock-mantle:us-east-1:123456789012:project/proj_abc123"

# Identity-based policy — no Principal block needed
policy_document = {
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "FullProjectAccess",
            "Effect": "Allow",
            "Action": "bedrock-mantle:*",
            "Resource": project_arn
        }
    ]
}

# Create a managed policy
create_response = iam.create_policy(
    PolicyName="DataScienceFullAccess",
    PolicyDocument=json.dumps(policy_document),
    Description="Grants DataScienceTeamRole full access to the Bedrock project"
)

policy_arn = create_response['Policy']['Arn']
print(f"Policy created: {policy_arn}")

# Attach to the DataScienceTeamRole
iam.attach_role_policy(
    RoleName="DataScienceTeamRole",
    PolicyArn=policy_arn
)

print("Full access policy attached to DataScienceTeamRole")
```

### 読み取り専用アクセス権を付与する
<a name="security-iam-projects-readonly"></a>

プロジェクトの詳細の表示と推論リクエストのみを許可するポリシーをアタッチします。

```
import boto3
import json

iam = boto3.client('iam', region_name='us-east-1')

project_arn = "arn:aws:bedrock-mantle:us-east-1:123456789012:project/proj_abc123"

# Identity-based policy — no Principal block needed
policy_document = {
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ReadOnlyAccess",
            "Effect": "Allow",
            "Action": [
                "bedrock-mantle:CreateInference",
                "bedrock-mantle:GetProject",
                "bedrock-mantle:ListProjects",
                "bedrock-mantle:ListTagsForResources"
            ],
            "Resource": project_arn
        }
    ]
}

# Create a managed policy
create_response = iam.create_policy(
    PolicyName="ReadOnlyAccessPolicy",
    PolicyDocument=json.dumps(policy_document),
    Description="Grants viewer1 and viewer2 read-only access to the Bedrock project"
)

policy_arn = create_response['Policy']['Arn']
print(f"Policy created: {policy_arn}")

# Attach to viewer1
iam.attach_user_policy(
    UserName="viewer1",
    PolicyArn=policy_arn
)
print("Policy attached to viewer1")

# Attach to viewer2
iam.attach_user_policy(
    UserName="viewer2",
    PolicyArn=policy_arn
)
print("Policy attached to viewer2")
```







# AWS Amazon Bedrock の マネージドポリシー
<a name="security-iam-awsmanpol"></a>

ユーザー、グループ、ロールにアクセス許可を追加するには、自分でポリシーを記述するよりも AWS 管理ポリシーを使用する方が簡単です。チームに必要な権限のみを提供する [IAM カスタマーマネージドポリシーを作成する](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html)には時間と専門知識が必要です。すぐに開始するには、 AWS マネージドポリシーを使用できます。これらのポリシーは、一般的なユースケースをターゲット範囲に含めており、 AWS アカウントで利用できます。

 AWS 管理ポリシーのリストについては、「 [AWS 管理ポリシー](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/policy-list.html)リファレンス」の AWS 「 管理ポリシー」を参照してください。 AWS 管理ポリシーの詳細については、*IAM ユーザーガイド*の「 [AWS 管理ポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)」を参照してください。

AWS サービスは、 AWS 管理ポリシーを維持および更新します。 AWS 管理ポリシーのアクセス許可は変更できません。サービスでは新しい機能を利用できるようにするために、 AWS マネージドポリシーに権限が追加されることがあります。この種類の更新はポリシーがアタッチされている、すべてのアイデンティティ (ユーザー、グループおよびロール) に影響を与えます。新しい機能が立ち上げられた場合や、新しいオペレーションが使用可能になった場合に、各サービスが AWS マネージドポリシーを更新する可能性が最も高くなります。サービスは AWS 管理ポリシーからアクセス許可を削除しないため、ポリシーの更新によって既存のアクセス許可が損なわれることはありません。

さらに、 は、複数のサービスにまたがるジョブ関数の マネージドポリシー AWS をサポートしています。例えば、**ReadOnlyAccess** AWS 管理ポリシーは、すべての AWS サービスとリソースへの読み取り専用アクセスを提供します。サービスが新機能を起動すると、 は新しいオペレーションとリソースの読み取り専用アクセス許可 AWS を追加します。ジョブ機能のポリシーの一覧および詳細については、「*IAM ユーザーガイド*」の「[AWS のジョブ機能のマネージドポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html)」を参照してください。

**Topics**
+ [AWS マネージドポリシー: AmazonBedrockFullAccess](#security-iam-awsmanpol-AmazonBedrockFullAccess)
+ [AWS マネージドポリシー: AmazonBedrockReadOnly](#security-iam-awsmanpol-AmazonBedrockReadOnly)
+ [AWS マネージドポリシー: AmazonBedrockLimitedAccess](#security-iam-awsmanpol-AmazonBedrockLimitedAccess)
+ [AWS マネージドポリシー: AmazonBedrockMarketplaceAccess](#security-iam-awsmanpol-AmazonBedrockMarketplaceAccess)
+ [AWS マネージドポリシー: AmazonBedrockMantleFullAccess](#security-iam-awsmanpol-AmazonBedrockMantleFullAccess)
+ [AWS マネージドポリシー: AmazonBedrockMantleReadOnly](#security-iam-awsmanpol-AmazonBedrockMantleReadOnly)
+ [AWS マネージドポリシー: AmazonBedrockMantleInferenceAccess](#security-iam-awsmanpol-AmazonBedrockMantleInferenceAccess)
+ [Amazon Bedrock の AWS マネージドポリシーの更新](#security-iam-awsmanpol-updates)

## AWS マネージドポリシー: AmazonBedrockFullAccess
<a name="security-iam-awsmanpol-AmazonBedrockFullAccess"></a>

[AmazonBedrockFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonBedrockFullAccess.html) ポリシーを IAM ID にアタッチすると、ユーザーアクセス許可に Amazon Bedrock リソースの作成、読み取り、更新、削除を許可する管理者アクセス許可を付与できます。

**アクセス許可の詳細**

このポリシーには、以下のアクセス許可が含まれています。
+  `ec2` (Amazon Elastic Compute Cloud) – VPC、サブネット、およびセキュリティグループを記述するためのアクセス許可を許可します。
+  `iam` (AWS アイデンティティとアクセス管理) – プリンシパルがロールを渡すことを許可しますが、プリンシパルに「Amazon Bedrock」が含まれる IAM ロールのみを Amazon Bedrock サービスに渡すことができます。アクセス許可は Amazon Bedrock オペレーションの `bedrock.amazonaws.com` に限定されています。
+  `kms` (AWS Key Management Service) – プリンシパルが AWS KMS キーとエイリアスを記述できるようにします。
+  `bedrock` (Amazon Bedrock) – Amazon Bedrock コントロールプレーンおよびランタイムサービスのすべてのアクションに対するプリンシパルの読み取りおよび書き込みアクセスを許可します。
+  `sagemaker` (Amazon SageMaker AI) – プリンシパルが顧客のアカウントの Amazon SageMaker AI リソースにアクセスできるようにします。これは、Amazon Bedrock Marketplace 機能の基盤として機能します。

------
#### [ JSON ]

****  

```
{
     "Version":"2012-10-17",		 	 	 
     "Statement": [
         {
             "Sid": "BedrockAll",
             "Effect": "Allow",
             "Action": [
                 "bedrock:*"
             ],
             "Resource": "*"
         },
         {
             "Sid": "DescribeKey",
             "Effect": "Allow",
             "Action": [
                 "kms:DescribeKey"
             ],
             "Resource": "arn:*:kms:*:::*"
         },
         {
             "Sid": "APIsWithAllResourceAccess",
             "Effect": "Allow",
             "Action": [
                 "iam:ListRoles",
                 "ec2:DescribeVpcs",
                 "ec2:DescribeSubnets",
                 "ec2:DescribeSecurityGroups"
             ],
             "Resource": "*"
         },
         {
             "Sid": "MarketplaceModelEndpointMutatingAPIs",
             "Effect": "Allow",
             "Action": [
                 "sagemaker:CreateEndpoint",
                 "sagemaker:CreateEndpointConfig",
                 "sagemaker:CreateModel",
                 "sagemaker:DeleteEndpoint",
                 "sagemaker:UpdateEndpoint"
             ],
             "Resource": [
                 "arn:aws:sagemaker:*:*:endpoint/*",
                 "arn:aws:sagemaker:*:*:endpoint-config/*",
                 "arn:aws:sagemaker:*:*:model/*"
             ],
             "Condition": {
                 "StringEquals": {
                     "aws:CalledViaLast": "bedrock.amazonaws.com",
                     "aws:ResourceTag/sagemaker-sdk:bedrock": "compatible"
                 }
             }
         },
         {
             "Sid": "MarketplaceModelEndpointAddTagsOperations",
             "Effect": "Allow",
             "Action": [
                 "sagemaker:AddTags"
             ],
             "Resource": [
                 "arn:aws:sagemaker:*:*:endpoint/*",
                 "arn:aws:sagemaker:*:*:endpoint-config/*",
                 "arn:aws:sagemaker:*:*:model/*"
             ],
             "Condition": {
                 "ForAllValues:StringEquals": {
                     "aws:TagKeys": [
                         "sagemaker-sdk:bedrock",
                         "bedrock:marketplace-registration-status",
                         "sagemaker-studio:hub-content-arn"
                     ]
                 },
                 "StringLike": {
                     "aws:RequestTag/sagemaker-sdk:bedrock": "compatible",
                     "aws:RequestTag/bedrock:marketplace-registration-status": "registered",
                     "aws:RequestTag/sagemaker-studio:hub-content-arn": "arn:aws:sagemaker:*:aws:hub-content/SageMakerPublicHub/Model/*"
                 }
             }
         },
         {
             "Sid": "MarketplaceModelEndpointDeleteTagsOperations",
             "Effect": "Allow",
             "Action": [
                 "sagemaker:DeleteTags"
             ],
             "Resource": [
                 "arn:aws:sagemaker:*:*:endpoint/*",
                 "arn:aws:sagemaker:*:*:endpoint-config/*",
                 "arn:aws:sagemaker:*:*:model/*"
             ],
             "Condition": {
                 "ForAllValues:StringEquals": {
                     "aws:TagKeys": [
                         "sagemaker-sdk:bedrock",
                         "bedrock:marketplace-registration-status",
                         "sagemaker-studio:hub-content-arn"
                     ]
                 },
                 "StringLike": {
                     "aws:ResourceTag/sagemaker-sdk:bedrock": "compatible",
                     "aws:ResourceTag/bedrock:marketplace-registration-status": "registered",
                     "aws:ResourceTag/sagemaker-studio:hub-content-arn": "arn:aws:sagemaker:*:aws:hub-content/SageMakerPublicHub/Model/*"
                 }
             }
         },
         {
             "Sid": "MarketplaceModelEndpointNonMutatingAPIs",
             "Effect": "Allow",
             "Action": [
                 "sagemaker:DescribeEndpoint",
                 "sagemaker:DescribeEndpointConfig",
                 "sagemaker:DescribeModel",
                 "sagemaker:DescribeInferenceComponent",
                 "sagemaker:ListEndpoints",
                 "sagemaker:ListTags"
             ],
             "Resource": [
                 "arn:aws:sagemaker:*:*:endpoint/*",
                 "arn:aws:sagemaker:*:*:endpoint-config/*",
                 "arn:aws:sagemaker:*:*:model/*"
             ],
             "Condition": {
                 "StringEquals": {
                     "aws:CalledViaLast": "bedrock.amazonaws.com"
                 }
             }
         },
         {
             "Sid": "MarketplaceModelEndpointInvokingOperations",
             "Effect": "Allow",
             "Action": [
                 "sagemaker:InvokeEndpoint",
                 "sagemaker:InvokeEndpointWithResponseStream"
             ],
             "Resource": [
                 "arn:aws:sagemaker:*:*:endpoint/*"
             ],
             "Condition": {
                 "StringEquals": {
                     "aws:CalledViaLast": "bedrock.amazonaws.com",
                     "aws:ResourceTag/sagemaker-sdk:bedrock": "compatible"
                 }
             }
         },
         {
             "Sid": "DiscoveringMarketplaceModel",
             "Effect": "Allow",
             "Action": [
                 "sagemaker:DescribeHubContent"
             ],
             "Resource": [
                 "arn:aws:sagemaker:*:aws:hub-content/SageMakerPublicHub/Model/*",
                 "arn:aws:sagemaker:*:aws:hub/SageMakerPublicHub"
             ]
         },
         {
             "Sid": "AllowMarketplaceModelsListing",
             "Effect": "Allow",
             "Action": [
                 "sagemaker:ListHubContents"
             ],
             "Resource": "arn:aws:sagemaker:*:aws:hub/SageMakerPublicHub"
         },
         {
             "Sid": "PassRoleToSageMaker",
             "Effect": "Allow",
             "Action": [
                 "iam:PassRole"
             ],
             "Resource": [
                 "arn:aws:iam::*:role/*SageMaker*ForBedrock*"
             ],
             "Condition": {
                 "StringEquals": {
                     "iam:PassedToService": [
                         "sagemaker.amazonaws.com",
                         "bedrock.amazonaws.com"
                     ]
                 }
             }
         },
         {
             "Sid": "PassRoleToBedrock",
             "Effect": "Allow",
             "Action": [
                 "iam:PassRole"
             ],
             "Resource": "arn:aws:iam::*:role/*AmazonBedrock*",
             "Condition": {
                 "StringEquals": {
                     "iam:PassedToService": [
                         "bedrock.amazonaws.com"
                     ]
                 }
             }
         },
         {
             "Sid": "MarketplaceOperationsFromBedrockFor3pModels",
             "Effect": "Allow",
             "Action": [
                 "aws-marketplace:Subscribe",
                 "aws-marketplace:ViewSubscriptions",
                 "aws-marketplace:Unsubscribe"
             ],
             "Resource": "*",
             "Condition": {
                 "StringEquals": {
                     "aws:CalledViaLast": "bedrock.amazonaws.com"
                 }
             }
         }
     ]
 }
```

------

## AWS マネージドポリシー: AmazonBedrockReadOnly
<a name="security-iam-awsmanpol-AmazonBedrockReadOnly"></a>

[AmazonBedrockReadOnly](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonBedrockReadOnly.html) ポリシーを IAM ID にアタッチすると、Amazon Bedrock 内のすべてのリソースを表示する読み取り専用アクセス許可を付与できます。

## AWS マネージドポリシー: AmazonBedrockLimitedAccess
<a name="security-iam-awsmanpol-AmazonBedrockLimitedAccess"></a>

[AmazonBedrockLimitedAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonBedrockLimitedAccess.html) ポリシーを IAM アイデンティティにアタッチして、サードパーティーの基盤モデルの Amazon Bedrock サービス、 AWS KMS キー管理、ネットワークリソース、および AWS Marketplace サブスクリプションへのアクセスを許可できます。このポリシーには、次のステートメントが含まれます。
+ `BedrockAPIs` ステートメントでは、Amazon Bedrock で次のような複数のオペレーションを実行できます。
  + Amazon Bedrock サービスに API リクエストを行うときに Amazon Bedrock API キーを渡す。
  + リソースに関する情報を説明する。
  + リソース (ガードレール、モデル、ジョブ) を作成する。
  + 自動推論ポリシーを作成し、絞り込む (ポリシーの作成、構築、絞り込み、テスト)。
  + リソースを削除する。
  + すべてのリソースでモデルを呼び出す。
+ `DescribeKey` ステートメントでは、キーのポリシーで許可されている限り、すべてのリージョンとアカウントの KMS キーに関する情報を表示できます。
+ `APIsWithAllResourceAccess` ステートメントでは、次のことができます。
  + IAM ロールを一覧表示する。
  + すべてのリソースの Amazon VPC リソース (VPC、サブネット、セキュリティグループ) について説明する。
+ `MarketplaceOperationsFromBedrockFor3pModels` ステートメントでは、次のことができます。
  +  AWS Marketplace サービスをサブスクライブします。
  + サブスクリプションを表示する。
  +  AWS Marketplace サービスのサブスクリプションを解除します。
**注記**  
条件キー `aws:CalledViaLast` は、Amazon Bedrock サービスを介して呼び出された場合にのみ、これらのアクションを制限します。

## AWS マネージドポリシー: AmazonBedrockMarketplaceAccess
<a name="security-iam-awsmanpol-AmazonBedrockMarketplaceAccess"></a>

[AmazonBedrockMarketplaceAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonBedrockMarketplaceAccess.html) ポリシーを IAM ID にアタッチすると、SageMaker AI 統合で Amazon Bedrock Marketplace モデルエンドポイントの管理と使用を許可できます。このポリシーには、次のステートメントが含まれます。
+ `BedrockMarketplaceAPIs` ステートメントでは、Amazon Bedrock のすべてのリソースでマーケットプレイスモデルエンドポイントを作成、削除、登録、登録解除、更新できます。
+ `MarketplaceModelEndpointMutatingAPIs` ステートメントでは、指定されたリソースで SageMaker AI エンドポイント、エンドポイント設定、モデルを作成および管理できます。
  + `aws:CalledViaLast` 条件キーを使用して、これらのアクションが Bedrock を介して呼び出された場合にのみ実行されるようにします。
  + `aws:ResourceTag/sagemaker-sdk:bedrock` 条件キーを使用して、これらのアクションが Amazon Bedrock 互換としてタグ付けされたリソースでのみ実行されるようにします。
+ `MarketplaceModelEndpointAddTagsOperations` ステートメントでは、指定されたリソースの SageMaker AI エンドポイント、エンドポイント設定、モデルに特定のタグを追加できます。
  + `aws:TagKeys` 条件キーを使用して、追加できるタグを制限します。
  + `aws:RequestTag/*` 条件キーを使用して、タグ値が指定されたパターンと一致することを確認します。
+ `MarketplaceModelEndpointDeleteTagsOperations` ステートメントでは、指定されたリソースの SageMaker AI エンドポイント、エンドポイント設定、モデルから特定のタグを削除できます。
  + `aws:TagKeys` 条件キーを使用して、削除できるタグを制限します。
  + `aws:ResourceTag/*` 条件キーを使用して、削除されたタグが指定されたパターンと一致することを確認します。
+ `MarketplaceModelEndpointNonMutatingAPIs` ステートメントでは、指定されたリソースの SageMaker AI エンドポイント、エンドポイント設定、モデルを表示および記述できます。
  + `aws:CalledViaLast` 条件キーを使用して、アクションが Amazon Bedrock サービスを介してのみ実行されるようにします。
+ `MarketplaceModelEndpointInvokingOperations` ステートメントでは、指定されたリソースで SageMaker AI エンドポイントを呼び出すことができます。
  + `aws:CalledViaLast` 条件キーを使用して、アクションが Amazon Bedrock サービスを介してのみ実行されるようにします。
  + `aws:ResourceTag/sagemaker-sdk:bedrock` 条件キーを使用して、アクションが Bedrock 互換リソースでのみ実行されるようにします。
+ `DiscoveringMarketplaceModel` ステートメントでは、指定されたリソースで SageMaker AI ハブのコンテンツを記述できます。
+ `AllowMarketplaceModelsListing` ステートメントでは、指定されたリソースで SageMaker AI ハブのコンテンツを一覧表示できます。
+ `PassRoleToSageMaker` ステートメントでは、指定されたリソースで SageMaker AI と Amazon Bedrock に IAM ロールを渡すことができます。
  + `iam:PassedToService` 条件キーを使用して、指定されたサービスでのみロールが渡されるようにします。
+ `PassRoleToBedrock` ステートメントでは、指定されたリソースで特定の IAM ロールを Amazon Bedrock に渡すことができます。
  + `iam:PassedToService` 条件キーを使用して、Amazon Bedrock サービスでのみロールが渡されるようにします。

## AWS マネージドポリシー: AmazonBedrockMantleFullAccess
<a name="security-iam-awsmanpol-AmazonBedrockMantleFullAccess"></a>

[AmazonBedrockMantleFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonBedrockMantleFullAccess.html) ポリシーを IAM ID にアタッチして、すべての Amazon Bedrock Mantle オペレーションへのフルアクセスを許可できます。

**アクセス許可の詳細**

このポリシーには、以下のアクセス許可が含まれています。
+ `bedrock-mantle` (Amazon Bedrock Mantle) – Amazon Bedrock Mantle サービス内のすべてのアクションへのフルアクセスをプリンシパルに許可します。

## AWS マネージドポリシー: AmazonBedrockMantleReadOnly
<a name="security-iam-awsmanpol-AmazonBedrockMantleReadOnly"></a>

[AmazonBedrockMantleReadOnly](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonBedrockMantleReadOnly.html) ポリシーを IAM ID にアタッチして、Amazon Bedrock Mantle リソースを表示し、ベアラートークンで を呼び出すための読み取り専用アクセス許可を付与できます。

**アクセス許可の詳細**

このポリシーには、以下のアクセス許可が含まれています。
+ `bedrock-mantle` (Amazon Bedrock Mantle) – プリンシパルが Amazon Bedrock Mantle プロジェクトリソースを取得して一覧表示し、ベアラートークンを使用して を呼び出して認証できるようにします。

## AWS マネージドポリシー: AmazonBedrockMantleInferenceAccess
<a name="security-iam-awsmanpol-AmazonBedrockMantleInferenceAccess"></a>

[AmazonBedrockMantleInferenceAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonBedrockMantleInferenceAccess.html) ポリシーを IAM アイデンティティにアタッチして、Amazon Bedrock Mantle モデルで推論を実行するアクセス許可を付与できます。

**アクセス許可の詳細**

このポリシーには、以下のアクセス許可が含まれています。
+ `bedrock-mantle` (Amazon Bedrock Mantle) – プリンシパルが Amazon Bedrock Mantle プロジェクトリソースを取得して一覧表示し、推論リクエストを作成し、ベアラートークンを使用して を呼び出して認証できるようにします。

## Amazon Bedrock の AWS マネージドポリシーの更新
<a name="security-iam-awsmanpol-updates"></a>

このサービスがこれらの変更の追跡を開始してからの Amazon Bedrock の AWS マネージドポリシーの更新に関する詳細を表示します。このページへの変更に関する自動通知を受けるには、[Amazon Bedrock ユーザーガイドのドキュメント履歴](doc-history.md) の RSS フィードを購読してください。


| 変更 | 説明 | 日付 | 
| --- | --- | --- | 
|  [AmazonBedrockMantleFullAccess](#security-iam-awsmanpol-AmazonBedrockMantleFullAccess) – 新しいポリシー  |  Amazon Bedrock は、すべての Amazon Bedrock マントルオペレーションへのフルアクセスを許可する新しいポリシーを追加しました。  | 2025 年 12 月 3 日 | 
|  [AmazonBedrockMantleReadOnly](#security-iam-awsmanpol-AmazonBedrockMantleReadOnly) – 新しいポリシー  |  Amazon Bedrock は、Amazon Bedrock Mantle リソースへの読み取り専用アクセスを許可する新しいポリシーを追加しました。  | 2025 年 12 月 3 日 | 
|  [AmazonBedrockMantleInferenceAccess](#security-iam-awsmanpol-AmazonBedrockMantleInferenceAccess) – 新しいポリシー  |  Amazon Bedrock は、Amazon Bedrock マントルモデルへの推論アクセスを許可する新しいポリシーを追加しました。  | 2025 年 12 月 3 日 | 
|  [AmazonBedrockFullAccess](#security-iam-awsmanpol-AmazonBedrockFullAccess) – 更新されたポリシー  |  Amazon Bedrock は、AmazonBedrockFullAccess マネージドポリシーを更新して、デフォルトですべてのサーバーレス基盤モデルへのアクセスを有効にしました。  | 2025 年 7 月 14 日 | 
|  [AmazonBedrockMarketplaceAccess](#security-iam-awsmanpol-AmazonBedrockLimitedAccess) – 新しいポリシー  |  Amazon Bedrock は、SageMaker AI エンドポイントを介して Amazon Bedrock Marketplace 基盤モデルにアクセスする許可を顧客に付与する新しいポリシーを追加しました。  | 2025 年 6 月 13 日 | 
|  [AmazonBedrockLimitedAccess](#security-iam-awsmanpol-AmazonBedrockLimitedAccess) – 新しいポリシー  |  Amazon Bedrock は、Amazon Bedrock のコアアクションにアクセスするための基本的なアクセス許可を顧客に付与する新しいポリシーを追加しました。  | 2025 年 6 月 13 日 | 
|  [AmazonBedrockFullAccess](#security-iam-awsmanpol-AmazonBedrockFullAccess) – 更新されたポリシー  |  Amazon Bedrock はAmazonBedrockFullAccess マネージドポリシーを更新し、Amazon Bedrock Marketplace リソースの作成、読み取り、更新、削除に必要なアクセス許可を顧客に付与しました。これには、Amazon Bedrock Marketplace 機能の基盤として機能する、Amazon SageMaker AI 基盤リソースを管理するアクセス許可が含まれます。  | 2024 年 12 月 4 日 | 
|  [AmazonBedrockReadOnly](#security-iam-awsmanpol-AmazonBedrockReadOnly) – 更新したポリシー  |  Amazon Bedrock はAmazonBedrockReadOnly マネージドポリシーを更新して、Amazon Bedrock Marketplace リソースを読み取るために必要なアクセス許可を顧客に付与しました。これには、Amazon Bedrock Marketplace 機能の基盤として機能する、Amazon SageMaker AI 基盤リソースを管理するアクセス許可が含まれます。  | 2024 年 12 月 4 日 | 
|  [AmazonBedrockReadOnly](#security-iam-awsmanpol-AmazonBedrockReadOnly) – 更新したポリシー  |  Amazon Bedrock は AmazonBedrockReadOnly ポリシーを更新し、カスタムモデルインポートの読み取り専用アクセス権限を追加しました。  | 2024 年 10 月 18 日 | 
|  [AmazonBedrockReadOnly](#security-iam-awsmanpol-AmazonBedrockReadOnly) – 更新したポリシー  |  Amazon Bedrock は、推論プロファイルの読み取り専用アクセス権限を追加しました。  | 2024 年 8 月 27 日 | 
|  [AmazonBedrockReadOnly](#security-iam-awsmanpol-AmazonBedrockReadOnly) – 更新したポリシー  |  Amazon Bedrock は、AmazonBedrockReadOnly ポリシーを更新し、Amazon Bedrock Guardrails、Amazon Bedrock モデル評価、Amazon Bedrock バッチ推論の読み取り専用アクセス権限を追加しました。  | 2024 年 8 月 21 日 | 
|  [AmazonBedrockReadOnly](#security-iam-awsmanpol-AmazonBedrockReadOnly) – 更新したポリシー  |  Amazon Bedrock は、バッチ推論 (モデル呼び出しジョブ) の読み取り専用アクセス権限を追加しました。  | 2024 年 8 月 21 日 | 
|   [AmazonBedrockReadOnly](#security-iam-awsmanpol-AmazonBedrockReadOnly) – 更新したポリシー   |  Amazon Bedrock は AmazonBedrockReadOnly ポリシーを更新し、Amazon Bedrock カスタムモデルインポートの読み取り専用アクセス権限を追加しました。  | 2024 年 9 月 3 日 | 
|  [AmazonBedrockFullAccess](#security-iam-awsmanpol-AmazonBedrockFullAccess) – 新しいポリシー  |  Amazon Bedrock は、リソースの作成、読み取り、更新、および削除に対するアクセス許可をユーザーに付与する新しいポリシーを追加しました。  | 2023 年 12 月 12 日 | 
|  [AmazonBedrockReadOnly](#security-iam-awsmanpol-AmazonBedrockReadOnly) – 新しいポリシー  |  Amazon Bedrock は、すべてのアクションに対する読み取り専用アクセス許可をユーザーに付与する新しいポリシーを追加しました。  | 2023 年 12 月 12 日 | 
|  Amazon Bedrock が変更の追跡を開始  |  Amazon Bedrock は、 AWS 管理ポリシーの変更の追跡を開始しました。  | 2023 年 12 月 12 日 | 

# サービスロール
<a name="security-iam-sr"></a>

Amazon Bedrock は、一部の機能に [IAM サービスロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-role)を使用して、Amazon Bedrock がユーザーに代わってタスクを実行できるようにします。

コンソールは、サポートされている機能のサービスロールを自動的に作成します。

カスタムサービスロールを作成し、アタッチされたアクセス許可を特定のユースケースにカスタマイズすることもできます。コンソールを使用する場合は、Amazon Bedrock にロールを作成させる代わりに、このロールを選択できます。

カスタムサービスロールを設定するには、以下の一般的なステップを実行します。

1. 「 [AWS サービスにアクセス許可を委任するロールの作成」の手順に従ってロールを作成します](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)。

1. **信頼ポリシー**をアタッチします。

1. 関連する**アイデンティティベースのアクセス許可**をアタッチします。

**重要**  
`iam:PassRole` アクセス許可を設定する場合、ユーザーに付与すべきアクセス許可以上のアクセス許可を持つロールをユーザーが渡せないようにする必要があります。例えば、Alice には、カスタムモデルでの `bedrock:InvokeModel` の実行が許可されていない場合があります。Alice がそのカスタムモデルの評価を作成するために Amazon Bedrock にロールを渡すことができる場合、サービスはジョブの実行中に Alice に代わってそのモデルを呼び出すことができます。

サービスロールのアクセス許可の設定に関連する IAM 概念の詳細については、以下のリンクを参照してください。
+ [AWS サービスロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-role)
+ [アイデンティティベースおよびリソースベースのポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_identity-vs-resource.html)
+ [Lambda でリソースベースのポリシーを使用する](https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html)
+ [AWS グローバル条件コンテキストキー](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)
+ [Amazon Bedrock の条件キー](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html#amazonbedrock-policy-keys)

特定の機能のサービスロールの詳細については、トピックを選択してください。

**Topics**
+ [バッチ推論向けのサービスロールを作成する](batch-iam-sr.md)
+ [Create a service role for model customization](model-customization-iam-role.md)
+ [事前トレーニングしたモデルをインポートするサービスロールを作成する](model-import-iam-role.md)
+ [Amazon Bedrock エージェントのサービスロールを作成する](agents-permissions.md)
+ [Amazon Bedrock ナレッジベースのサービスロールを作成する](kb-permissions.md)
+ [Amazon Bedrock で Amazon Bedrock Flows のサービスロールを作成する](flows-permissions.md)
+ [モデル評価ジョブのサービスロール要件](model-evaluation-security-service-roles.md)

# バッチ推論向けのサービスロールを作成する
<a name="batch-iam-sr"></a>

で Amazon Bedrock が自動的に作成するロールではなく、バッチ推論にカスタムサービスロールを使用するにはAWS マネジメントコンソール、[AWS「 サービスにアクセス許可を委任するロールを作成する」の手順に従って IAM ロールを作成し、次のアクセス許可をアタッチします](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)。

**Topics**
+ [信頼関係](#batch-iam-sr-trust)
+ [バッチ推論サービスロールのアイデンティティベースのアクセス許可。](#batch-iam-sr-identity)

## 信頼関係
<a name="batch-iam-sr-trust"></a>

以下の信頼ポリシーでは、Amazon Bedrock がこのロールを引き受け、バッチ推論ジョブの送信と管理を行えます。必要に応じて*値*を置き換えます。このポリシーには、セキュリティのベストプラクティスとして使用することを推奨する `Condition` フィールドに、オプションの条件キー (「[Amazon Bedrock の条件キー](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html#amazonbedrock-policy-keys)」および「[AWS のグローバル条件コンテキストキー](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html#amazonbedrock-policy-keys)」を参照) が含まれています。

**注記**  
セキュリティ上のベストプラクティスとして、*\$1* は特定のバッチ推論ジョブ ID に置き換えてください (作成後)。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "bedrock.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                },
                "ArnEquals": {
                    "aws:SourceArn": "arn:aws:bedrock:us-east-1:123456789012:model-invocation-job/*"
                }
            }
        }
    ]
}
```

------

## バッチ推論サービスロールのアイデンティティベースのアクセス許可。
<a name="batch-iam-sr-identity"></a>

以下のトピックでは、ユースケースに応じてカスタムバッチ推論サービスロールにアタッチする必要があるアクセス許可ポリシーの例を提供して説明します。

**Topics**
+ [(必須) Amazon S3 の入出力データにアクセスするためのアクセス許可](#batch-iam-sr-s3)
+ [(オプション) 推論プロファイルを使用してバッチ推論を実行するためのアクセス許可](#batch-iam-sr-ip)

### (必須) Amazon S3 の入出力データにアクセスするためのアクセス許可
<a name="batch-iam-sr-s3"></a>

サービスロールが入力データと出力データを書き込むバケットを含む Amazon S3 バケットにアクセスできるようにするには、以下のポリシーをサービスロールにアタッチします。必要に応じて、*values* を置き換えます。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
         "Sid": "S3Access",
         "Effect": "Allow",
         "Action": [
            "s3:GetObject",
            "s3:PutObject",
            "s3:ListBucket"
         ],
         "Resource": [
            "arn:aws:s3:::${InputBucket}",
            "arn:aws:s3:::${InputBucket}/*",
            "arn:aws:s3:::${OutputBucket}",
            "arn:aws:s3:::${OutputBucket}/*"
         ],
         "Condition": {
            "StringEquals": {
                "aws:ResourceAccount": [
                    "123456789012"
                ]
            }
         }
        }
    ]
}
```

------

### (オプション) 推論プロファイルを使用してバッチ推論を実行するためのアクセス許可
<a name="batch-iam-sr-ip"></a>

[推論プロファイル](inference-profiles.md)を使用してバッチ推論を実行するには、サービスロールに、推論プロファイルの各リージョンのモデルに加えてAWS リージョン、 で推論プロファイルを呼び出すアクセス許可が必要です。

クロスリージョン (システム定義) 推論プロファイルを使用して呼び出すためのアクセス許可については、サービスロールにアタッチするアクセス許可ポリシーのテンプレートとして次のポリシーを使用します。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CrossRegionInference",
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1:123456789012:inference-profile/${InferenceProfileId}",
                "arn:aws:bedrock:us-east-1::foundation-model/${ModelId}",
                "arn:aws:bedrock:us-east-1::foundation-model/${ModelId}"
            ]
        }
    ]
}
```

------

アプリケーション推論プロファイルを使用して呼び出すアクセス許可については、サービスロールにアタッチするアクセス許可ポリシーのテンプレートとして次のポリシーを使用します。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ApplicationInferenceProfile",
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1:123456789012:application-inference-profile/${InferenceProfileId}",
                "arn:aws:bedrock:us-east-1::foundation-model/${ModelId}",
                "arn:aws:bedrock:us-east-1::foundation-model/${ModelId}"
            ]
        }
    ]
}
```

------

# Create a service role for model customization
<a name="model-customization-iam-role"></a>

Amazon Bedrock が自動的に作成するロールの代わりにカスタムロールを使用してモデルをカスタマイズするには、[AWS「 サービスにアクセス許可を委任するロールを作成する」の手順に従って、IAM ロールを作成し、次のアクセス許可をアタッチします](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)。
+ 信頼関係
+ S3 のトレーニングデータや検証データにアクセスし、出力データを S3 書き込むアクセス許可
+ (オプション) 以下のリソースを KMS キーで暗号化する場合、キーを復号化するアクセス許可 (「[カスタムモデルの暗号化](encryption-custom-job.md)」を参照)
  + モデルカスタマイズジョブ、または生成されたカスタムモデル
  + モデルカスタマイズジョブ用のトレーニング、検証、または出力データ

**Topics**
+ [信頼関係](#model-customization-iam-role-trust)
+ [S3 のトレーニングファイルや検証ファイルにアクセスし、出力ファイルを書き込むアクセス許可](#model-customization-iam-role-s3)
+ [(オプション) クロスリージョン推論プロファイルを使用して蒸留ジョブを作成するアクセス許可](#customization-iam-sr-ip)

## 信頼関係
<a name="model-customization-iam-role-trust"></a>

以下のポリシーでは、Amazon Bedrock がこのロールを引き受け、モデルカスタマイズジョブを実行できます。使用するポリシーの例を下記に示します。

`Condition` フィールドで 1 つ以上のグローバル条件コンテキストキーを使用することで、必要に応じて、[サービス間の混乱した使節を回避する](cross-service-confused-deputy-prevention.md)ためのアクセス許可の範囲を制限できます。詳細については、「[AWS グローバル条件コンテキストキー](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)」を参照してください。
+ `aws:SourceAccount` の値をアカウント ID に設定します。
+ (オプション) `ArnEquals` または `ArnLike` 条件を使用して、アカウント ID の特定のモデルカスタムジョブの範囲を制限します。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "bedrock.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                },
                "ArnEquals": {
                    "aws:SourceArn": "arn:aws:bedrock:us-east-1:111122223333:model-customization-job/*"
                }
            }
        }
    ]
}
```

------

## S3 のトレーニングファイルや検証ファイルにアクセスし、出力ファイルを書き込むアクセス許可
<a name="model-customization-iam-role-s3"></a>

次のポリシーをアタッチして、ロールがトレーニングデータと検証データ、および出力データを書き込むバケットにアクセスできるようにします。`Resource` リスト内の値を実際のバケット名に置き換えます。

バケット内の特定のフォルダへのアクセスを制限するには、フォルダパスに `s3:prefix` 条件キーを追加します。「[例 2：特定のプレフィックス付きバケットのオブジェクトリストを取得する](https://docs.aws.amazon.com/AmazonS3/latest/userguide/amazon-s3-policy-keys.html#condition-key-bucket-ops-2)」の**ユーザーポリシー**例に従います。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::training-bucket",
                "arn:aws:s3:::training-bucket/*",
                "arn:aws:s3:::validation-bucket",
                "arn:aws:s3:::validation-bucket/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::output-bucket",
                "arn:aws:s3:::output-bucket/*"
            ]
        }
    ]
}
```

------

## (オプション) クロスリージョン推論プロファイルを使用して蒸留ジョブを作成するアクセス許可
<a name="customization-iam-sr-ip"></a>

抽出ジョブで教師モデルのクロスリージョン推論プロファイルを使用するには、サービスロールに、推論プロファイルの各リージョンのモデルに加えてAWS リージョン、 で推論プロファイルを呼び出すアクセス許可が必要です。

クロスリージョン (システム定義) 推論プロファイルを使用して呼び出すためのアクセス許可については、サービスロールにアタッチするアクセス許可ポリシーのテンプレートとして次のポリシーを使用します。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CrossRegionInference",
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1:123456789012:inference-profile/${InferenceProfileId}",
                "arn:aws:bedrock:us-east-1::foundation-model/${ModelId}",
                "arn:aws:bedrock:us-east-1::foundation-model/${ModelId}"
            ]
        }
    ]
}
```

------

# 事前トレーニングしたモデルをインポートするサービスロールを作成する
<a name="model-import-iam-role"></a>

モデルインポートにカスタムロールを使用するには、IAM サービスロールを作成し、以下のアクセス許可をアタッチします。IAM でサービスロールを作成する方法については、「 [AWSサービスにアクセス許可を委任するロールの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)」を参照してください。

これらのアクセス許可は、以下の Amazon Bedrock にモデルをインポートする 2 つの方法に適用されます。
+ **カスタムモデルのインポートジョブ** — カスタマイズされたオープンソースの基盤モデル (Mistral AI モデルや Llama モデルなど) をインポートする場合。詳細については、「[カスタムモデルのインポートを使用して、カスタマイズされたオープンソースモデルを Amazon Bedrock にインポートする](model-customization-import-model.md)」を参照してください。
+ **カスタムモデルの作成** — SageMaker AI でファインチューニングした Amazon Nova モデルをインポートする場合。詳細については、「[SageMaker AI でトレーニングされた Amazon Nova モデルをインポートする](import-with-create-custom-model.md)」を参照してください。

**Topics**
+ [信頼関係](#model-import-iam-role-trust)
+ [Amazon S3 のモデルファイルにアクセスするためのアクセス許可](#model-import-iam-role-s3)

## 信頼関係
<a name="model-import-iam-role-trust"></a>

以下のポリシーにより、Amazon Bedrock がこのロールを引き受け、モデルのインポートオペレーションを実行できるようになります。使用するポリシーの例を下記に示します。

`Condition` フィールドで 1 つ以上のグローバル条件コンテキストキーを使用することで、必要に応じて、[サービス間の混乱した使節を回避する](cross-service-confused-deputy-prevention.md)ためのアクセス許可の範囲を制限できます。詳細については、「[AWS グローバル条件コンテキストキー](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)」を参照してください。
+ `aws:SourceAccount` の値をアカウント ID に設定します。
+ (オプション) `ArnEquals` 条件または `ArnLike` 条件を使用すると、アカウント内の特定のオペレーションの範囲を制限できます。次の例では、カスタムモデルのインポートジョブへのアクセスを制限しています。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "1",
            "Effect": "Allow",
            "Principal": {
                "Service": "bedrock.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                },
                "ArnEquals": {
                    "aws:SourceArn": "arn:aws:bedrock:us-east-1:111122223333:model-import-job/*"
                }
            }
        }
    ]
}
```

------

## Amazon S3 のモデルファイルにアクセスするためのアクセス許可
<a name="model-import-iam-role-s3"></a>

次のポリシーをアタッチして、Amazon S3 バケット内のモデルファイルへのアクセスをロールに許可します。`Resource` リスト内の値を実際のバケット名に置き換えます。

カスタムモデルのインポートジョブの場合、これはカスタマイズされたオープンソースのモデルファイルを含む独自の Amazon S3 バケットです。SageMaker AI でトレーニングされた Amazon Nova モデルからカスタムモデルを作成する場合、これは SageMaker AI がトレーニング済みモデルアーティファクトを保存する Amazon マネージド Amazon S3 バケットです。このバケットは、最初の SageMaker AI トレーニングジョブを実行するときに SageMaker AI によって作成されます。

バケット内の特定のフォルダへのアクセスを制限するには、フォルダパスに `s3:prefix` 条件キーを追加します。「[例 2：特定のプレフィックス付きバケットのオブジェクトリストを取得する](https://docs.aws.amazon.com/AmazonS3/latest/userguide/amazon-s3-policy-keys.html#condition-key-bucket-ops-2)」の**ユーザーポリシー**例に従います。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "1",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::bucket",
                "arn:aws:s3:::bucket/*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "123456789012"
                }
            }
        }
    ]
}
```

------

# Amazon Bedrock エージェントのサービスロールを作成する
<a name="agents-permissions"></a>

Amazon Bedrock が自動的に作成するロールの代わりにエージェントにカスタムサービスロールを使用するには、[AWS「 サービスにアクセス許可を委任するロールを作成する」の手順に従って、IAM ロールを作成し、次のアクセス許可をアタッチします](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)。
+ 信頼ポリシー
+ 次の ID ベースのアクセス許可を含むポリシー。
  + Amazon Bedrock のベースモデルへのアクセス。
  + エージェントのアクショングループ用の OpenAPI スキーマを含む Amazon S3 オブジェクトへのアクセス。
  + エージェントにアタッチしたいナレッジベースにクエリを実行するための Amazon Bedrock のアクセス許可。
  + ユースケースに関連する状況が次のいずれかの場合、ステートメントをポリシーに追加するか、ステートメントを含むポリシーをサービスロールに追加します。
    + (オプション) マルチエージェントコラボレーションを有効にする場合は、エイリアスを取得してエージェントコラボレーターを呼び出すためのアクセス許可。
    + (オプション) プロビジョンドスループットをエージェントのエイリアスに関連付ける場合、そのプロビジョンドスループットを使用してモデル呼び出しを実行するアクセス許可。
    + (オプション) ガードレールをエージェントに関連付ける場合、そのガードレールを適用するアクセス許可。ガードレールが KMS キーで暗号化されている場合、サービスロールには[キーを復号化するためのアクセス許可](guardrails-permissions-kms.md)も必要です。
    + (オプション) KMS キーでエージェントを暗号化する場合、[キーを復号化するアクセス許可](encryption-agents.md)。

カスタムロールを使用するかどうかにかかわらず、関数にアクセスするためのアクセス許可をサービスロールに付与するために、エージェント内のアクショングループの Lambda 関数 に**リソースベースのポリシー**をアタッチする必要もあります。詳細については、「[Amazon Bedrock がアクショングループの Lambda 関数を呼び出すことを許可するリソースベースのポリシー](#agents-permissions-lambda)」を参照してください。

**Topics**
+ [信頼関係](#agents-permissions-trust)
+ [エージェントサービスロールのアイデンティティベースのアクセス許可](#agents-permissions-identity)
+ [(オプション) Amazon Bedrock がエージェントのエイリアスでプロビジョンドスループットを使用できるようにするアイデンティティベースのポリシー](#agents-permissions-pt)
+ [(オプション) Amazon Bedrock がエージェントコラボレーターを関連付けて呼び出すことを許可するアイデンティティベースのポリシー](#agents-permissions-mac)
+ [(オプション) Amazon Bedrock が エージェントでガードレールを使用できるようにするアイデンティティベースのポリシー](#agents-permissions-gr)
+ [(オプション) Amazon Bedrock が S3 からファイルにアクセスしてコード解釈で使用できるようにするためのアイデンティティベースのポリシー](#agents-permissions-files-ci)
+ [Amazon Bedrock がアクショングループの Lambda 関数を呼び出すことを許可するリソースベースのポリシー](#agents-permissions-lambda)

## 信頼関係
<a name="agents-permissions-trust"></a>

以下の信頼ポリシーにより、Amazon Bedrock がこのロールを引き受け、エージェントを作成および管理することができます。必要に応じて *\$1\$1values\$1* を置き換えます。このポリシーには、セキュリティのベストプラクティスとして使用することを推奨する `Condition` フィールドに、オプションの条件キー (「[Amazon Bedrock の条件キー](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html#amazonbedrock-policy-keys)」および「[AWS のグローバル条件コンテキストキー](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html#amazonbedrock-policy-keys)」を参照) が含まれています。

**注記**  
セキュリティ上のベストプラクティスとして、*\$1* は特定のエージェント ID に置き換えてください (作成後)。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "bedrock.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                },
                "ArnLike": {
                    "AWS:SourceArn": "arn:aws:bedrock:us-east-1:123456789012:agent/*"
                }
            }
        }
    ]
}
```

------

## エージェントサービスロールのアイデンティティベースのアクセス許可
<a name="agents-permissions-identity"></a>

必要に応じて *\$1\$1values\$1* を置き換えて、サービスロールのアクセス許可を付与するには、次のポリシーをアタッチします。ポリシーには、次のステートメントが含まれます。ユースケースに適用されない場合は、ステートメントを省略します。このポリシーには、セキュリティのベストプラクティスとして使用することを推奨する `Condition` フィールドに、オプションの条件キー (「[Amazon Bedrock の条件キー](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html#amazonbedrock-policy-keys)」および「[AWS のグローバル条件コンテキストキー](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html#amazonbedrock-policy-keys)」を参照) が含まれています。

**注記**  
カスタマーマネージド KMS キーでエージェントを暗号化する場合は、追加する必要があるその他のアクセス許可については、「[2025 年 1 月 22 日より前に作成されたエージェントのエージェントリソースの暗号化](encryption-agents.md)」を参照してください。
+ Amazon Bedrock 基盤モデルを使用して、エージェントのオーケストレーションで使用されるプロンプトに対してモデル推論を実行するアクセス許可。
+ Amazon S3 のエージェントのアクショングループ API スキーマにアクセスするためのアクセス許可。エージェントにアクショングループがない場合は、このステートメントを省略します。
+ エージェントに関連付けられたナレッジベースにアクセスするためのアクセス許可。エージェントに関連付けられたナレッジベースがない場合は、このステートメントを省略します。
+ エージェントに関連付けられたサードパーティ (Pinecone または Redis Enterprise Cloud) のナレッジベースにアクセスするためのアクセス許可。ナレッジベースがファーストパーティ (Amazon OpenSearch Serverless または Amazon Aurora) である場合、またはエージェントにナレッジベースが関連付けられていない場合は、このステートメントを省略します。
+ プロンプト管理からプロンプトにアクセスするためのアクセス許可。Amazon Bedrock コンソールでエージェントを使用してプロンプト管理からのプロンプトをテストする予定がない場合は、このステートメントを省略します。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AgentModelInvocationPermissions",
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-v2",
                "arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-v2:1",
                "arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-instant-v1"
            ]
        },
        {
            "Sid": "AgentActionGroupS3",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/SchemaJson"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "123456789012"
                }
            }
        },
        {
            "Sid": "AgentKnowledgeBaseQuery",
            "Effect": "Allow",
            "Action": [
                "bedrock:Retrieve",
                "bedrock:RetrieveAndGenerate"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1:123456789012:knowledge-base/knowledge-base-id"
            ]
        },
        {
            "Sid": "Agent3PKnowledgeBase",
            "Effect": "Allow",
            "Action": [
                "bedrock:AssociateThirdPartyKnowledgeBase"
            ],
            "Resource": "arn:aws:bedrock:us-east-1:123456789012:knowledge-base/knowledge-base-id",
            "Condition": {
                "StringEquals": {
                    "bedrock:ThirdPartyKnowledgeBaseCredentialsSecretArn": "arn:aws:kms:us-east-1:123456789012:key/KeyId"
                }
            }
        },
        {
            "Sid": "AgentPromptManagementConsole",
            "Effect": "Allow",
            "Action": [
                "bedrock:GetPrompt"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1:123456789012:prompt/prompt-id"
            ]
        }
    ]
}
```

------

## (オプション) Amazon Bedrock がエージェントのエイリアスでプロビジョンドスループットを使用できるようにするアイデンティティベースのポリシー
<a name="agents-permissions-pt"></a>

[プロビジョンドスループット](prov-throughput.md)をエージェントのエイリアスに関連付ける場合は、次のアイデンティティベースのポリシーをサービスロールにアタッチするか、[エージェントサービスロールのアイデンティティベースのアクセス許可](#agents-permissions-identity) のポリシーにステートメントを追加します。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {        
        "Sid": "UseProvisionedThroughput",
        "Effect": "Allow",
        "Action": [
            "bedrock:InvokeModel", 
            "bedrock:GetProvisionedModelThroughput"
        ],
        "Resource": [
            "arn:aws:bedrock:us-east-1:123456789012:provisioned-model/${provisioned-model-id}"
        ]
      }
    ]
}
```

------

## (オプション) Amazon Bedrock がエージェントコラボレーターを関連付けて呼び出すことを許可するアイデンティティベースのポリシー
<a name="agents-permissions-mac"></a>

[マルチエージェントコラボレーション](agents-multi-agent-collaboration.md)を有効にする場合は、次のアイデンティティベースのポリシーをサービスロールにアタッチするか、[エージェントサービスロールのアイデンティティベースのアクセス許可](#agents-permissions-identity) のポリシーにステートメントを追加します。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AmazonBedrockAgentMultiAgentsPolicyProd",
            "Effect": "Allow",
            "Action": [
                "bedrock:GetAgentAlias",
                "bedrock:InvokeAgent"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1:123456789012:agent-alias/${agent-id}/${agent-alias-id}"
            ]
        }
    ]
}
```

------

## (オプション) Amazon Bedrock が エージェントでガードレールを使用できるようにするアイデンティティベースのポリシー
<a name="agents-permissions-gr"></a>

[ガードレール](guardrails.md)をエージェントに関連付ける場合は、次のアイデンティティベースのポリシーをサービスロールにアタッチするか、[エージェントサービスロールのアイデンティティベースのアクセス許可](#agents-permissions-identity) のポリシーにステートメントを追加します。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ApplyGuardrail",
            "Effect": "Allow",
            "Action": "bedrock:ApplyGuardrail",
            "Resource": [
                "arn:aws:bedrock:us-east-1:123456789012:guardrail/${guardrail-id}"
            ]
        }
    ]
}
```

------

## (オプション) Amazon Bedrock が S3 からファイルにアクセスしてコード解釈で使用できるようにするためのアイデンティティベースのポリシー
<a name="agents-permissions-files-ci"></a>

[Amazon Bedrock でコード解釈を有効にする](agents-enable-code-interpretation.md) を有効にする場合は、次の ID ベースのポリシーをサービスロールにアタッチするか、[エージェントサービスロールのアイデンティティベースのアクセス許可](https://docs.aws.amazon.com//bedrock/latest/userguide/agents-permissions.html#agents-permissions-identity)のポリシーにステートメントを追加します。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
      {       
        "Sid": "AmazonBedrockAgentFileAccess", 
        "Effect": "Allow",
        "Action": [
            "s3:GetObject",
            "s3:GetObjectVersion",
            "s3:GetObjectVersionAttributes",
            "s3:GetObjectAttributes"
        ],
        "Resource": [
            "arn:aws:s3:::[[customerProvidedS3BucketWithKey]]"
        ]
      }
    ]
}
```

------

## Amazon Bedrock がアクショングループの Lambda 関数を呼び出すことを許可するリソースベースのポリシー
<a name="agents-permissions-lambda"></a>

「[Lambda のリソースベースのポリシーを使用する](https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html)」の手順に従って、次のリソースベースのポリシーを Lambda 関数にアタッチして、Amazon Bedrock がエージェントのアクショングループの Lambda 関数にアクセスし、必要に応じて *\$1\$1values\$1* を置き換えられるようにします。このポリシーには、セキュリティのベストプラクティスとして使用することを推奨する `Condition` フィールドに、オプションの条件キー (「[Amazon Bedrock の条件キー](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html#amazonbedrock-policy-keys)」および「[AWS のグローバル条件コンテキストキー](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html#amazonbedrock-policy-keys)」を参照) が含まれています。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AccessLambdaFunction",
            "Effect": "Allow",
            "Principal": {
                "Service": "bedrock.amazonaws.com"
            },
            "Action": "lambda:InvokeFunction",
            "Resource": "arn:aws:lambda:us-east-1:123456789012:function:function-name",
            "Condition": {
                "StringEquals": {
                    "AWS:SourceAccount": "123456789012"
                },
                "ArnLike": {
                    "AWS:SourceArn": "arn:aws:bedrock:us-east-1:123456789012:agent/${agent-id}"
                }
            }
        }
    ]
}
```

------

# Amazon Bedrock ナレッジベースのサービスロールを作成する
<a name="kb-permissions"></a>

Amazon Bedrock が自動的に作成するロールの代わりにナレッジベースのカスタムロールを使用するには、[AWS 「 サービスにアクセス許可を委任するロールの作成」の手順に従って、IAM ロールを作成し、次のアクセス許可をアタッチします](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)。独自のセキュリティに必要なアクセス許可のみを含めるようにしてください。

**注記**  
サービスロールを使用する場合、ポリシーを複数のロール間で共有することはできません。
+ 信頼関係
+ Amazon Bedrock のベースモデルへのアクセス
+ データを保存するデータソースへのアクセス
+ (Amazon OpenSearch Service でベクトルデータベースを作成する場合) OpenSearch Service コレクションへのアクセス許可
+ (Amazon Aurora でベクトルデータベースを作成する場合) Aurora クラスターへのアクセス
+ ( Pineconeまたは でベクトルデータベースを作成する場合Redis Enterprise Cloud) Pineconeまたは Redis Enterprise Cloudアカウントを認証 AWS Secrets Manager するための のアクセス許可
+ (オプション) 以下のリソースを KMS キーで暗号化する場合、キーを復号化するアクセス許可 (「[ナレッジベースリソースの暗号化](encryption-kb.md)」を参照)。
  + ナレッジベース
  + ナレッジベースのデータソース
  + Amazon OpenSearch Service のベクトルデータベース
  + のサードパーティーベクトルデータベースのシークレット AWS Secrets Manager
  + データインジェストジョブ

**Topics**
+ [信頼関係](#kb-permissions-trust)
+ [Amazon Bedrock モデルにアクセスするためのアクセス許可](#kb-permissions-access-models)
+ [データソースにアクセスするためのアクセス許可](#kb-permissions-access-ds)
+ [Amazon S3 で暗号化されたデータソースの AWS KMS キーを復号するアクセス許可](#kb-permissions-kms-datasource)
+ [ドキュメントでチャットするためのアクセス許可](#kb-permissions-chatdoc)
+ [マルチモーダルコンテンツのアクセス許可](#kb-permissions-multimodal)
+ [Amazon Kendra GenAI Index へのアクセス許可](#kb-permissions-kendra)
+ [Amazon OpenSearch Serverless 内のベクトルデータベースにアクセスするためのアクセス許可](#kb-permissions-oss)
+ [OpenSearch マネージドクラスターでベクトルデータベースにアクセスするためのアクセス許可](#kb-permissions-osm)
+ [Amazon Aurora データベースクラスターにアクセスするためのアクセス許可](#kb-permissions-rds)
+ [Amazon Neptune Analytics でベクトルデータベースにアクセスするためのアクセス許可](#kb-permissions-neptune)
+ [Amazon S3 Vectors でベクトルストアにアクセスするためのアクセス許可](#kb-permissions-s3vectors)
+ [AWS Secrets Manager シークレットで設定されたベクトルデータベースへのアクセス許可](#kb-permissions-secret)
+ [データ取り込み中の一時的なデータストレージの AWS KMS キーを管理する AWS ための のアクセス許可](#kb-permissions-kms-ingestion)
+ [別のユーザーの AWS アカウントからデータソースを管理する AWS ための のアクセス許可。](#kb-permissions-otherds)

## 信頼関係
<a name="kb-permissions-trust"></a>

以下のポリシーにより、Amazon Bedrock がこのロールを引き受け、ナレッジベースを作成および管理することができます。使用するポリシーの例を下記に示します。1 つ以上のグローバル条件コンテキストキーを使用して、アクセス許可の範囲を制限できます。詳細については、「[AWS グローバル条件コンテキストキー](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)」を参照してください。`aws:SourceAccount` の値をアカウント ID に設定します。`ArnEquals` または `ArnLike` 条件を使用して、範囲を特定のナレッジベースに制限します。

**注記**  
セキュリティ上のベストプラクティスとして、*\$1* は特定のナレッジベース ID に置き換えてください (作成後)。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "bedrock.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                },
                "ArnLike": {
                    "AWS:SourceArn": "arn:aws:bedrock:us-east-1:123456789012:knowledge-base/*"
                }
            }
        }
    ]
}
```

------

## Amazon Bedrock モデルにアクセスするためのアクセス許可
<a name="kb-permissions-access-models"></a>

ロールがソースデータの組み込みに Amazon Bedrock モデルを使用するためのアクセス許可を提供するには、以下のポリシーをアタッチします。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "bedrock:ListFoundationModels",
                "bedrock:ListCustomModels"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1::foundation-model/amazon.titan-embed-text-v1",
                "arn:aws:bedrock:us-east-1::foundation-model/cohere.embed-english-v3",
                "arn:aws:bedrock:us-east-1::foundation-model/cohere.embed-multilingual-v3"
            ]
        }
    ]
}
```

------

## データソースにアクセスするためのアクセス許可
<a name="kb-permissions-access-ds"></a>

次のデータソースの中から選択して、ロールに必要なアクセス許可をアタッチしてください。

**Topics**
+ [Amazon S3 データソースにアクセスするためのアクセス許可](#kb-permissions-access-s3)
+ [Confluence データソースにアクセスするためのアクセス許可](#kb-permissions-access-confluence)
+ [Microsoft SharePoint データソースにアクセスするためのアクセス許可](#kb-permissions-access-sharepoint)
+ [Salesforce データソースにアクセスするためのアクセス許可](#kb-permissions-access-salesforce)

### Amazon S3 データソースにアクセスするためのアクセス許可
<a name="kb-permissions-access-s3"></a>

データソースが Amazon S3 の場合は、次のポリシーをアタッチして、データソースとして接続する S3 バケットにアクセスするためのアクセス許可をロールに付与します。

 AWS KMS キーを使用してデータソースを暗号化した場合は、「」の手順に従って、キーを復号するアクセス許可をロールにアタッチします[Amazon S3 のデータソースの AWS KMS キーを復号するアクセス許可](encryption-kb.md#encryption-kb-ds)。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "S3ListBucketStatement",
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "123456789012"
                }
            }
        },
        {
            "Sid": "S3GetObjectStatement",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "123456789012"
                }
            }
        }
    ]
}
```

------

### Confluence データソースにアクセスするためのアクセス許可
<a name="kb-permissions-access-confluence"></a>

**注記**  
Confluence データソースコネクタはプレビューリリースの段階であり、変更される可能性があります。

以下のポリシーをアタッチして、ロールが Confluence にアクセスするためのアクセス許可を付与します。

**注記**  
`secretsmanager:PutSecretValue` は、OAuth 2.0 認証で更新トークンを使用する場合にのみ必要です。  
Confluence OAuth2.0 の**アクセス**トークンの有効期限は、デフォルトでは 60 分です。データソースの同期 (同期ジョブ) 中にアクセストークンの有効期限が切れた場合、Amazon Bedrock は、指定された**更新**トークンを使用してアクセストークンを再生成します。その際は、アクセストークンと更新トークンの両方が更新されます。現在の同期ジョブから次の同期ジョブまでトークンを最新の状態で維持するために、Amazon Bedrock にはシークレット認証情報の書き込み/保存のアクセス許可が必要です。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetSecretValue",
                "secretsmanager:PutSecretValue"
            ],
            "Resource": [
                "arn:aws:secretsmanager:us-east-1:123456789012:secret:SecretId"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": [
                "arn:aws:kms:us-east-1:123456789012:key/KeyId"
            ],
            "Condition": {
                "StringLike": {
                    "kms:ViaService": [
                        "secretsmanager.us-east-1.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

### Microsoft SharePoint データソースにアクセスするためのアクセス許可
<a name="kb-permissions-access-sharepoint"></a>

**注記**  
SharePoint データソースコネクタはプレビューリリースの段階であり、変更される可能性があります。

以下のポリシーをアタッチして、ロールが SharePoint にアクセスするためのアクセス許可を付与します。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetSecretValue"
            ],
            "Resource": [
                "arn:aws:secretsmanager:us-east-1:123456789012:secret:SecretId"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": [
                "arn:aws:kms:us-east-1:123456789012:key/KeyId"
            ],
            "Condition": {
                "StringLike": {
                    "kms:ViaService": [
                        "secretsmanager.us-east-1.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

### Salesforce データソースにアクセスするためのアクセス許可
<a name="kb-permissions-access-salesforce"></a>

**注記**  
Salesforce データソースコネクタはプレビューリリースの段階であり、変更される可能性があります。

以下のポリシーをアタッチして、ロールが Salesforce にアクセスするためのアクセス許可を付与します。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetSecretValue"
            ],
            "Resource": [
                "arn:aws:secretsmanager:us-east-1:123456789012:secret:SecretId"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": [
                "arn:aws:kms:us-east-1:123456789012:key/KeyId"
            ],
            "Condition": {
                "StringLike": {
                    "kms:ViaService": [
                        "secretsmanager.us-east-1.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

## Amazon S3 で暗号化されたデータソースの AWS KMS キーを復号するアクセス許可
<a name="kb-permissions-kms-datasource"></a>

Amazon S3 のデータソースを AWS KMS キーで暗号化した場合は、Amazon Bedrock ナレッジベースサービスロールに次のポリシーをアタッチして、Amazon Bedrock がキーを復号できるようにします。*\$1\$1Region\$1* と *\$1\$1AccountId\$1* を、キーが属するリージョンとアカウント ID に置き換えます。*\$1\$1KeyId\$1* を AWS KMS キーの ID に置き換えます。

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [{
        "Effect": "Allow",
        "Action": [
            "kms:Decrypt"
        ],
        "Resource": [
            "arn:aws:kms:${Region}:${AccountId}:key/${KeyId}"
        ],
        "Condition": {
            "StringEquals": {
                "kms:ViaService": [
                    "s3.${Region}.amazonaws.com"
                ]
            }
        }
    }]
}
```

## ドキュメントでチャットするためのアクセス許可
<a name="kb-permissions-chatdoc"></a>

以下のポリシーをアタッチして、ロールが Amazon Bedrock モデルを使用してドキュメントでチャットするためのアクセス許可を付与します。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
			"Effect": "Allow",
			"Action": [
				"bedrock:RetrieveAndGenerate"
			],
			"Resource": "*"
		}
    ]
}
```

------

ユーザーにドキュメントでチャットするためのアクセス権のみを付与する場合は (すべてのナレッジベースでの `RetrieveAndGenerate` の権限は与えない)、以下のポリシーを使用します。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
			"Effect": "Allow",
			"Action": [
				"bedrock:RetrieveAndGenerate"
			],
			"Resource": "*"
		},
        {
			"Effect": "Deny",
			"Action": [
				"bedrock:Retrieve"
			],
			"Resource": "*"
		}
    ]
}
```

------

ドキュメントチャットと、特定のナレッジベースでの `RetrieveAndGenerate` の使用を両方とも認める場合は、*\$1\$1KnowledgeBaseArn\$1* を指定して、以下のポリシーを使用します。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "bedrock:RetrieveAndGenerate"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "bedrock:Retrieve"
            ],
            "Resource": "arn:aws:bedrock:us-east-1:123456789012:knowledge-base/$KnowledgeBaseId"
        }
    ]
}
```

------

## マルチモーダルコンテンツのアクセス許可
<a name="kb-permissions-multimodal"></a>

マルチモーダルコンテンツ (イメージ、オーディオ、ビデオ) を使用する場合は、処理方法に応じて追加のアクセス許可が必要です。

### Nova マルチモーダル埋め込みのアクセス許可
<a name="kb-permissions-multimodal-mme"></a>

Nova マルチモーダル埋め込みを使用する場合は、次のポリシーをアタッチして、非同期モデル呼び出しのアクセス許可を付与します。

```
{
    "Sid": "BedrockInvokeModelStatement",
    "Effect": "Allow",
    "Action": ["bedrock:InvokeModel"],
    "Resource": [
        "arn:aws:bedrock:us-east-1::foundation-model/amazon.nova-*-multimodal-embeddings-*",
        "arn:aws:bedrock:us-east-1::async-invoke/*"
    ],
    "Condition": {
        "StringEquals": {
            "aws:ResourceAccount": ""
        }
    }
},
{
    "Sid": "BedrockGetAsyncInvokeStatement",
    "Effect": "Allow",
    "Action": ["bedrock:GetAsyncInvoke"],
    "Resource": ["arn:aws:bedrock:us-east-1::async-invoke/*"],
    "Condition": {
        "StringEquals": {
            "aws:ResourceAccount": ""
        }
    }
}
```

### Bedrock Data Automation (BDA) のアクセス許可
<a name="kb-permissions-multimodal-bda"></a>

BDA を使用してマルチモーダルコンテンツを処理する場合は、次のポリシーをアタッチします。

```
{
    "Sid": "BDAInvokeStatement",
    "Effect": "Allow",
    "Action": ["bedrock:InvokeDataAutomationAsync"],
    "Resource": [
        "arn:aws:bedrock:us-east-1:aws:data-automation-project/public-rag-default",
        "arn:aws:bedrock:us-east-1::data-automation-profile/*"
    ]
},
{
    "Sid": "BDAGetStatement",
    "Effect": "Allow",
    "Action": ["bedrock:GetDataAutomationStatus"],
    "Resource": "arn:aws:bedrock:us-east-1::data-automation-invocation/*"
}
```

BDA でカスタマーマネージド AWS KMS キーを使用する場合は、次のポリシーもアタッチします。*account-id*、*region*、および *key-id* を特定の値に置き換えます。

```
{
    "Sid": "KmsPermissionStatementForBDA",
    "Effect": "Allow",
    "Action": [
        "kms:GenerateDataKey",
        "kms:Decrypt",
        "kms:DescribeKey",
        "kms:CreateGrant"
    ],
    "Resource": ["arn:aws:kms:region:account-id:key/key-id"],
    "Condition": {
        "StringEquals": {
            "aws:ResourceAccount": "account-id",
            "kms:ViaService": "bedrock.region.amazonaws.com"
        }
    }
}
```

## Amazon Kendra GenAI Index へのアクセス許可
<a name="kb-permissions-kendra"></a>

ナレッジベース用の Amazon Kendra GenAI Index を作成した場合は、以下のポリシーを Amazon Bedrock ナレッジベースのサービスロールにアタッチして、インデックスへのアクセスを許可します。ポリシーで、*\$1\$1Partition\$1*、*\$1\$1Region\$1*、*\$1\$1AccountId\$1*、\$1\$1*IndexId\$1* をインデックスの値に置き換えます。複数のインデックスへのアクセスを許可するには、それらを `Resource` リストに追加します。内のすべてのインデックスへのアクセスを許可するには AWS アカウント、*\$1\$1IndexId\$1* をワイルドカード (\$1) に置き換えます。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kendra:Retrieve",
                "kendra:DescribeIndex"
            ],
            "Resource": "arn:aws:kendra:us-east-1:123456789012:index/${IndexId}" 
        }
    ]
}
```

------

## Amazon OpenSearch Serverless 内のベクトルデータベースにアクセスするためのアクセス許可
<a name="kb-permissions-oss"></a>

OpenSearch Serverless でナレッジベース用のベクトルデータベースを作成した場合は、以下のポリシーを Amazon Bedrock ナレッジベースのサービスロールにアタッチして、コレクションへのアクセスを許可します。*\$1\$1Region\$1* と *\$1\$1AccountId\$1* を、データベースが属するリージョンとアカウント ID に置き換えます。*\$1\$1CollectionId\$1* には、Amazon OpenSearch Service のコレクションの ID を入力します。複数のコレクションへのアクセスを許可するには、それらを `Resource` リストに追加します。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "aoss:APIAccessAll"
            ],
            "Resource": [
                "arn:aws:aoss:us-east-1:123456789012:collection/${CollectionId}"
            ]
        }
    ]
}
```

------

## OpenSearch マネージドクラスターでベクトルデータベースにアクセスするためのアクセス許可
<a name="kb-permissions-osm"></a>

OpenSearch マネージドクラスターでナレッジベース用のベクトルデータベースを作成した場合は、以下のポリシーを Amazon Bedrock ナレッジベースのサービスロールにアタッチして、ドメインへのアクセスを許可します。*<region>* と *<accountId>* を、データベースが属するリージョンとアカウント ID に置き換えます。複数のドメインへのアクセスを許可するには、それらを `Resource` リストに追加します。アクセス許可の設定については、「[Amazon Bedrock ナレッジベースで OpenSearch マネージドクラスターを使用するために必要な前提条件とアクセス許可アクセス許可設定の概要](kb-osm-permissions-prereq.md)」を参照してください。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",       
            "Action": [
                "es:ESHttpGet", 
                "es:ESHttpPost", 
                "es:ESHttpPut", 
                "es:ESHttpDelete" 
            ],
            "Resource": [
                "arn:aws:es:us-east-1:123456789012:domain/domainName/indexName"
            ]       
        }, 
        {
            "Effect": "Allow",
            "Action": [
                "es:DescribeDomain" 
            ],
            "Resource": [
                "arn:aws:es:us-east-1:123456789012:domain/domainName"
            ]       
        }
    ]
}
```

------

## Amazon Aurora データベースクラスターにアクセスするためのアクセス許可
<a name="kb-permissions-rds"></a>

**注記**  
Amazon Aurora クラスターは、Amazon Bedrock のナレッジベースが作成されるクラスター AWS アカウント と同じ に存在する必要があります。

Amazon Aurora でナレッジベース用のデータベース (DB) クラスターを作成した場合は、以下のポリシーを Amazon Bedrock ナレッジベースのサービスロールにアタッチして、DB クラスターへのアクセスを許可し、DB クラスターに対する読み取り/書き込みアクセス許可を提供します。*\$1\$1Region\$1* と *\$1\$1AccountId\$1* を、DB クラスターが属するリージョンとアカウント ID に置き換えます。Amazon Aurora データベースクラスターの ID を *\$1\$1DbClusterId\$1* に入力します。複数の DB クラスターへのアクセスを許可するには、それらを `Resource` リストに追加します。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "RdsDescribeStatementID",
            "Effect": "Allow",
            "Action": [
                "rds:DescribeDBClusters"
            ],
            "Resource": [
                "arn:aws:rds:us-east-1:123456789012:cluster:${DbClusterId}"
            ]
        },
        {
            "Sid": "DataAPIStatementID",
            "Effect": "Allow",
            "Action": [
                "rds-data:BatchExecuteStatement",
                "rds-data:ExecuteStatement"
            ],
            "Resource": [
                "arn:aws:rds:us-east-1:123456789012:cluster:${DbClusterId}"
            ]
        }
    ]
}
```

------

## Amazon Neptune Analytics でベクトルデータベースにアクセスするためのアクセス許可
<a name="kb-permissions-neptune"></a>

ナレッジベース用の Amazon Neptune Analytics グラフを作成した場合は、以下のポリシーを Amazon Bedrock ナレッジベースのサービスロールにアタッチして、グラフへのアクセスを許可します。ポリシーで、*\$1\$1Region\$1* と *\$1\$1AccountId\$1* を、データベースが属するリージョンとアカウント ID に置き換えます。*\$1\$1GraphId\$1* をグラフデータベースの値に置き換えます。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "NeptuneAnalyticsAccess",
            "Effect": "Allow",
            "Action": [
                "neptune-graph:GetGraph",
                "neptune-graph:ReadDataViaQuery",
                "neptune-graph:WriteDataViaQuery",
                "neptune-graph:DeleteDataViaQuery"
            ],
            "Resource": [
                "arn:aws:neptune-graph:us-east-1:123456789012:graph/${GraphId}"
            ]
        }
    ]
}
```

------

## Amazon S3 Vectors でベクトルストアにアクセスするためのアクセス許可
<a name="kb-permissions-s3vectors"></a>

ナレッジベース用の Amazon S3 Vectors を作成した場合は、以下のポリシーを Amazon Bedrock ナレッジベースのサービスロールにアタッチして、ベクトルインデックスへのアクセスを許可します。

ポリシーで、*\$1\$1Region\$1* と *\$1\$1AccountId\$1* をベクトルインデックスが属するリージョンとアカウント ID に置き換えます。*\$1\$1BucketName\$1* を S3 ベクトルバケットの名前に置き換え、*\$1\$1IndexName\$1* をベクトルインデックスの名前に置き換えます。Amazon S3 ベクトルの詳細については、[Amazon S3 Vectors を設定して使用する](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-vectors-setting-up.html)」を参照してください。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "S3VectorBucketReadAndWritePermission",
            "Effect": "Allow",
            "Action": [
                "s3vectors:PutVectors",
                "s3vectors:GetVectors",
                "s3vectors:DeleteVectors",
                "s3vectors:QueryVectors",
                "s3vectors:GetIndex"
            ],
            "Resource": "arn:aws:s3vectors:us-east-1:123456789012:bucket/${BucketName}/index/${IndexName}"
        }
    ]
}
```

------

## AWS Secrets Manager シークレットで設定されたベクトルデータベースへのアクセス許可
<a name="kb-permissions-secret"></a>

ベクトルデータベースに AWS Secrets Manager シークレットが設定されている場合は、次のポリシーを Amazon Bedrock ナレッジベースサービスロールにアタッチして、 がデータベースにアクセスするためにアカウント AWS Secrets Manager を認証できるようにします。*\$1\$1Region\$1* と *\$1\$1AccountId\$1* を、データベースが属するリージョンとアカウント ID に置き換えます。*\$1\$1SecretId\$1* をシークレットの ID に置き換えます。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetSecretValue"
            ],
            "Resource": [
                "arn:aws:secretsmanager:us-east-1:123456789012:secret:${SecretId}"
            ]
        }
    ]
}
```

------

 AWS KMS キーでシークレットを暗号化した場合は、「」の手順に従って、キーを復号するアクセス許可をロールにアタッチします[ナレッジベースを含むベクトルストアのシー AWS Secrets Manager クレットを復号するアクセス許可](encryption-kb.md#encryption-kb-3p)。

## データ取り込み中の一時的なデータストレージの AWS KMS キーを管理する AWS ための のアクセス許可
<a name="kb-permissions-kms-ingestion"></a>

データソースを取り込むプロセスで一時的なデータストレージの AWS KMS キーを作成できるようにするには、Amazon Bedrock ナレッジベースサービスロールに次のポリシーをアタッチします。*\$1\$1Region\$1*、*\$1\$1AccountId\$1*、*\$1\$1KeyId\$1* を適切な値に置き換えます。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kms:GenerateDataKey",
                "kms:Decrypt"
            ],
            "Resource": [
                "arn:aws:kms:us-east-1:123456789012:key/${KeyId}"
            ]
        }
    ]
}
```

------

## 別のユーザーの AWS アカウントからデータソースを管理する AWS ための のアクセス許可。
<a name="kb-permissions-otherds"></a>

別のユーザーの AWS アカウントへのアクセスを許可するには、別のユーザーのアカウントの Amazon S3 バケットへのクロスアカウントアクセスを許可するロールを作成する必要があります。*\$1\$1BucketName\$1*、*\$1\$1BucketOwnerAccountId\$1*、*\$1\$1BucketNameAndPrefix\$1* を適切な値に置き換えます。

**ナレッジベースロールに必要なアクセス許可**

ナレッジベースの作成時 (`createKnowledgeBase`) に指定するナレッジベースロールには、次の Amazon S3 アクセス許可が必要です。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "S3ListBucketStatement",
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "123456789012"
                }
            }
        },
        {
            "Sid": "S3GetObjectStatement",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "123456789012"
                }
            }
        }
    ]
}
```

------

Amazon S3 バケットが AWS KMS キーを使用して暗号化されている場合は、ナレッジベースロールに以下も追加する必要があります。*\$1\$1BucketOwnerAccountId\$1* と *\$1\$1Region\$1* を適切な値に置き換えます。

```
{
        "Sid": "KmsDecryptStatement",
        "Effect": "Allow",
        "Action": [
            "kms:Decrypt"
        ],
        "Resource": [
            "arn:aws:kms:${Region}:${BucketOwnerAccountId}:key/${KeyId}"
        ],
        "Condition": {
        "StringEquals": {
            "kms:ViaService": [
                "s3.${Region}.amazonaws.com"
            ]
        }
        }
    }
```

**クロスアカウントの Amazon S3 バケットポリシーに必要なアクセス許可**

他のアカウントのバケットに、次の Amazon S3 バケットポリシーが必要です。*\$1\$1KbRoleArn\$1*、*\$1\$1BucketName\$1*、*\$1\$1BucketNameAndPrefix\$1* を適切な値に置き換えます。

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Sid": "ListBucket",
         "Effect": "Allow",
         "Principal": {
            "AWS": "123456789012"
         },
         "Action": [
            "s3:ListBucket"
         ],
         "Resource": [
            "arn:aws:s3:::amzn-s3-demo-bucket"
         ]
      },
      {
         "Sid": "GetObject",
         "Effect": "Allow",
         "Principal": {
            "AWS": "123456789012"
         },
         "Action": [
            "s3:GetObject"
         ],
         "Resource": [
            "arn:aws:s3:::amzn-s3-demo-bucket/*"
         ]
      }
   ]
}
```

------

**クロスアカウント AWS KMS キーポリシーに必要なアクセス許可**

クロスアカウント Amazon S3 バケットがそのアカウントの AWS KMS キーを使用して暗号化されている場合、キーの AWS KMS ポリシーには次のポリシーが必要です。*\$1\$1KbRoleArn\$1* と *\$1\$1KmsKeyArn\$1* を適切な値に置き換えます。

```
{
    "Sid": "Example policy",
    "Effect": "Allow",
    "Principal": {
        "AWS": [
            "${KbRoleArn}"
        ]
    },
    "Action": [
        "kms:Decrypt"
    ],
    "Resource": "${KmsKeyArn}"
}
```

# Amazon Bedrock で Amazon Bedrock Flows のサービスロールを作成する
<a name="flows-permissions"></a>

Amazon Bedrock でフローを作成して管理するには、このページで説明する必要なアクセス許可を持つサービスロールを使用する必要があります。Amazon Bedrock がコンソールで自動的に作成するサービスロールを使用するか、自分でカスタマイズしたサービスロールを使用できます。

**注記**  
Amazon Bedrock がコンソールで自動的に作成するサービスロールを使用する場合、フローにノードを追加してフローを保存すると、アクセス許可が動的にアタッチされます。ただし、ノードを削除する場合、アクセス許可は削除されないため、不要になったアクセス許可を削除する必要があります。作成したロールのアクセス許可を管理するには、IAM ユーザーガイドの「[ロールの修正](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_modify.html)」の手順に従います。

Amazon Bedrock Flows のカスタムサービスロールを作成するには、[AWS「 サービスにアクセス許可を委任するロールの作成」の手順に従って IAM ロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)を作成します。次に、次のアクセス許可をこのロールにアタッチします。
+ 信頼ポリシー
+ 次の ID ベースのアクセス許可:
  + フローが使用する Amazon Bedrock ベースモデルにアクセスします。フローで使用される各モデルを `Resource` リストに追加します。
  + プロビジョンドスループットを使用してモデルを呼び出す場合は、プロビジョンドモデルにアクセスして呼び出すアクセス許可。フローで使用される各モデルを `Resource` リストに追加します。
  + カスタムモデルを呼び出す場合は、カスタムモデルにアクセスして呼び出すアクセス許可。フローで使用される各モデルを `Resource` リストに追加します。
  + フローに追加するノードに基づくアクセス許可:
    + プロンプト管理からのプロンプトを使用するプロンプトノードを含める場合は、プロンプトにアクセスするためのアクセス許可が必要です。フローで使用される各プロンプトを `Resource` リストに追加します。
    + ナレッジベースノードを含める場合は、ナレッジベースをクエリするためのアクセス許可が必要です。フローでクエリされる各ナレッジベースを `Resource` リストに追加します。
    + エージェントノードを含める場合は、エージェントのエイリアスを呼び出すためのアクセス許可が必要です。フローで呼び出される各エージェントを `Resource` リストに追加します。
    + S3 取得ノードを含める場合は、データが取得される Amazon S3 バケットにアクセスするためのアクセス許可が必要です。データが取得される各バケットを `Resource` リストに追加します。
    + S3 ストレージノードを含める場合は、出力データが格納される Amazon S3 バケットに書き込むためのアクセス許可が必要です。データが書き込まれる各バケットを `Resource` リストに追加します。
    + ナレッジベースノードまたはプロンプトノードのガードレールを含める場合は、フローでガードレールを適用するためのアクセス許可が必要です。フローで使用される各ガードレールを `Resource` リストに追加します。
    + Lambda ノードを含める場合は、Lambda 関数を呼び出すためのアクセス許可が必要です。呼び出す必要がある各 Lambda 関数を `Resource` リストに追加します。
    + Amazon Lex ノードを含める場合は、Amazon Lex ボットを使用するためのアクセス許可が必要です。使用する必要がある各ボットエイリアスを `Resource` リストに追加します。
    + フローで呼び出されたリソースを暗号化した場合、キーを復号するためのアクセス許可が必要です。各キーを `Resource` リストに追加します。
+ フローを暗号化する場合は、フローの暗号化に使用する KMS キーにキーポリシーもアタッチする必要があります。

**注記**  
最近、次の変更が実装されました。  
以前AWS Lambdaは、Amazon Bedrock サービスプリンシパルを使用して Amazon Lex リソースが呼び出されていました。この動作は、2024-11-22 以降に作成されたフローでは変更されており、Amazon Bedrock Flows サービスロールを使用して AWS Lambdaおよび Amazon Lex リソースを呼び出します。2024-11-22 より前にこれらのリソースのいずれかを使用するフローを作成した場合は、Amazon Bedrock Flows サービスロールを AWS Lambdaおよび Amazon Lex アクセス許可で更新する必要があります。
以前は、プロンプト管理リソースは `bedrock:GetPrompt` アクションを使用してレンダリングされていました。この動作は、2024 年 11 月 22 日以降に作成されたフローでは変更されており、`bedrock:RenderPrompt` アクションを使用してプロンプトリソースをレンダリングします。2024 年 11 月 22 日より前にプロンプトリソースを使用するフローを作成した場合は、Amazon Bedrock Flows サービスロールを `bedrock:RenderPrompt` アクセス許可で更新する必要があります。
Amazon Bedrock がコンソールで自動的に作成するサービスロールを使用している場合、フローを保存すると、修正されたアクセス許可が動的にアタッチされます。

**Topics**
+ [信頼関係](#flows-permissions-trust)
+ [フローサービスロールのアイデンティティベースのアクセス許可。](#flows-permissions-identity)

## 信頼関係
<a name="flows-permissions-trust"></a>

次の信頼ポリシーをフロー実行ロールにアタッチして、Amazon Bedrock がこのロールを引き受け、フローを管理することを許可します。必要に応じて *values* を置き換えます。このポリシーには、セキュリティのベストプラクティスとして使用することを推奨する `Condition` フィールドに、オプションの条件キー (「[Amazon Bedrock の条件キー](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html#amazonbedrock-policy-keys)」および「[AWS のグローバル条件コンテキストキー](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html#amazonbedrock-policy-keys)」を参照) が含まれています。

**注記**  
ベストプラクティスとして、作成後に *\$1* をフロー ID に置き換えます。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "FlowsTrustBedrock",
            "Effect": "Allow",
            "Principal": {
                "Service": "bedrock.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                },
                "ArnLike": {
                    "AWS:SourceArn": "arn:aws:bedrock:us-east-1:123456789012:flow/*"
                }
            }
        }
    ]
}
```

------

## フローサービスロールのアイデンティティベースのアクセス許可。
<a name="flows-permissions-identity"></a>

必要に応じて *values* を置き換えて、サービスロールのアクセス許可を付与するには、次のポリシーをアタッチします。ポリシーには、次のステートメントが含まれます。ユースケースに適用されない場合は、ステートメントを省略します。このポリシーには、セキュリティのベストプラクティスとして使用することを推奨する `Condition` フィールドに、オプションの条件キー (「[Amazon Bedrock の条件キー](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html#amazonbedrock-policy-keys)」および「[AWS のグローバル条件コンテキストキー](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html#amazonbedrock-policy-keys)」を参照) が含まれています。
+ フローが使用する Amazon Bedrock ベースモデルにアクセスします。フローで使用される各モデルを `Resource` リストに追加します。
+ プロビジョンドスループットを使用してモデルを呼び出す場合は、プロビジョンドモデルにアクセスして呼び出すアクセス許可。フローで使用される各モデルを `Resource` リストに追加します。
+ カスタムモデルを呼び出す場合は、カスタムモデルにアクセスして呼び出すアクセス許可。フローで使用される各モデルを `Resource` リストに追加します。
+ フローに追加するノードに基づくアクセス許可:
  + プロンプト管理からのプロンプトを使用するプロンプトノードを含める場合は、プロンプトにアクセスするためのアクセス許可が必要です。フローで使用される各プロンプトを `Resource` リストに追加します。
  + ナレッジベースノードを含める場合は、ナレッジベースをクエリするためのアクセス許可が必要です。フローでクエリされる各ナレッジベースを `Resource` リストに追加します。
  + エージェントノードを含める場合は、エージェントのエイリアスを呼び出すためのアクセス許可が必要です。フローで呼び出される各エージェントを `Resource` リストに追加します。
  + S3 取得ノードを含める場合は、データが取得される Amazon S3 バケットにアクセスするためのアクセス許可が必要です。データが取得される各バケットを `Resource` リストに追加します。
  + S3 ストレージノードを含める場合は、出力データが格納される Amazon S3 バケットに書き込むためのアクセス許可が必要です。データが書き込まれる各バケットを `Resource` リストに追加します。
  + ナレッジベースノードまたはプロンプトノードのガードレールを含める場合は、フローでガードレールを適用するためのアクセス許可が必要です。フローで使用される各ガードレールを `Resource` リストに追加します。
  + Lambda ノードを含める場合は、Lambda 関数を呼び出すためのアクセス許可が必要です。呼び出す必要がある各 Lambda 関数を `Resource` リストに追加します。
  + Amazon Lex ノードを含める場合は、Amazon Lex ボットを使用するためのアクセス許可が必要です。使用する必要がある各ボットエイリアスを `Resource` リストに追加します。
  + フローで呼び出されたリソースを暗号化した場合、キーを復号するためのアクセス許可が必要です。各キーを `Resource` リストに追加します。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "InvokeModel",
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1::foundation-model/ModelId"
            ]
        },
        {
            "Sid": "InvokeProvisionedThroughput",
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel",
                "bedrock:GetProvisionedModelThroughput"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1:123456789012:provisioned-model/ModelId"
            ]
        },
        {
            "Sid": "InvokeCustomModel",
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel",
                "bedrock:GetCustomModel"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1:123456789012:custom-model/ModelId"
            ]
        },
        {
            "Sid": "UsePromptFromPromptManagement",
            "Effect": "Allow",
            "Action": [
                "bedrock:RenderPrompt"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1:123456789012:prompt/PromptId"
            ]
        },
        {
            "Sid": "QueryKnowledgeBase",
            "Effect": "Allow",
            "Action": [
                "bedrock:Retrieve"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1:123456789012:knowledge-base/KnowledgeBaseId"
            ]
        },
        {
            "Sid": "InvokeAgent",
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeAgent"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1:123456789012:agent-alias/AgentId/AgentAliasId"
            ]
        },
        {
            "Sid": "AccessS3Bucket",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "123456789012"
                }
            }
        },
        {
            "Sid": "WriteToS3Bucket",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket",
                "arn:aws:s3:::amzn-s3-demo-bucket/*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "123456789012"
                }
            }
        },
        {
            "Sid": "GuardrailPermissions",
            "Effect": "Allow",
            "Action": [
                "bedrock:ApplyGuardrail"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1:123456789012:guardrail/GuardrailId"
            ]
        },
        {
            "Sid": "LambdaPermissions",
            "Effect": "Allow",
            "Action": [
                "lambda:InvokeFunction"
            ],
            "Resource": [
                "arn:aws:lambda:us-east-1:123456789012:function:FunctionId"
            ]
        },
        {
            "Sid": "AmazonLexPermissions",
            "Effect": "Allow",
            "Action": [
                "lex:RecognizeUtterance"
            ],
            "Resource": [ 
                "arn:aws:lex:us-east-1:123456789012:bot-alias/BotId/BotAliasId"
            ]
        },
        {
            "Sid": "KMSPermissions",
            "Effect": "Allow",
            "Action": [
                "kms:GenerateDataKey",
                "kms:Decrypt"
            ],
            "Resource": [
                "arn:aws:kms:us-east-1:123456789012:key/KeyId"
            ],
             "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "123456789012"
                }
            }
        }
    ]
}
```

------

# モデル評価ジョブのサービスロール要件
<a name="model-evaluation-security-service-roles"></a>

モデル評価ジョブを作成するには、サービスロールを指定する必要があります。サービスロールとは、サービスがユーザーに代わってアクションを実行するために引き受ける [IAM ロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)です。IAM 管理者は、IAM 内からサービスロールを作成、変更、削除できます。詳細については、「*IAM ユーザーガイド*」の「[AWS のサービス に許可を委任するロールを作成する](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)」を参照してください。

必要な IAM アクションとリソースは、作成するモデル評価ジョブのタイプによって異なります。以降のセクションでは、必要な Amazon Bedrock、Amazon SageMaker AI、Amazon S3 の IAM アクション、サービスプリンシパル、リソースについて説明します。必要に応じて、AWS Key Management Service を使用してデータを暗号化することもできます。

**Topics**
+ [自動モデル評価ジョブのサービスロール要件](automatic-service-roles.md)
+ [Service role requirements for human-based model evaluation jobs](model-eval-service-roles.md)
+ [判定モデルを使ったモデル評価ジョブを作成するために必要なサービスロールのアクセス許可](judge-service-roles.md)
+ [ナレッジベース評価ジョブのサービスロールの要件](rag-eval-service-roles.md)

# 自動モデル評価ジョブのサービスロール要件
<a name="automatic-service-roles"></a>

モデル評価ジョブを作成するには、サービスロールを指定する必要があります。アタッチするポリシーで、Amazon Bedrock にアカウント内のリソースへのアクセスを許可し、Amazon Bedrock がユーザーに代わって選択したモデルを呼び出すことを許可します。

また `bedrock.amazonaws.com` を使用して、Amazon Bedrock をサービスプリンシパルとして定義する信頼ポリシーをアタッチする必要があります。以下のポリシーの例では、自動モデル評価ジョブで呼び出される各サービスで必要な IAM アクションを示します。

カスタムサービスロールを作成するには、**「IAM ユーザーガイド」の「[カスタム信頼ポリシーを使用したロールの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-custom.html)」を参照してください。

**必要な Amazon S3 の IAM アクション**  
以下のポリシーの例は、モデル評価結果が保存される S3 バケットへのアクセス、および指定したカスタムプロンプトデータセットへのアクセス許可 (オプション) を付与します。

------
#### [ JSON ]

****  

```
{
"Version":"2012-10-17",		 	 	 
"Statement": [
    {
        "Sid": "AllowAccessToCustomDatasets",
        "Effect": "Allow",
        "Action": [
            "s3:GetObject",
            "s3:ListBucket"
        ],
        "Resource": [
            "arn:aws:s3:::my_customdataset1_bucket",
            "arn:aws:s3:::my_customdataset1_bucket/myfolder",
            "arn:aws:s3:::my_customdataset2_bucket",
            "arn:aws:s3:::my_customdataset2_bucket/myfolder"
        ]
    },
    {
        "Sid": "AllowAccessToOutputBucket",
        "Effect": "Allow",
        "Action": [
            "s3:GetObject",
            "s3:ListBucket",
            "s3:PutObject",
            "s3:GetBucketLocation",
            "s3:AbortMultipartUpload",
            "s3:ListBucketMultipartUploads"
        ],
        "Resource": [
            "arn:aws:s3:::my_output_bucket",
            "arn:aws:s3:::my_output_bucket/myfolder"
        ]
    }
]
}
```

------

**必要な Amazon Bedrock の IAM アクション**  
また、自動モデル評価ジョブで指定するモデルの呼び出しを Amazon Bedrock に許可するポリシーを作成する必要があります。Amazon Bedrock モデルへのアクセスの管理については、「[Access Amazon Bedrock foundation models](model-access.md)」を参照してください。ポリシーの `"Resource"` セクションでは、アクセス可能なモデルの ARN を少なくとも 1 つ指定する必要があります。カスタマーマネージド KMS キーで暗号化されたモデルを使用するには、必要な IAM アクションとリソースを IAM サービスロールポリシーに追加する必要があります。また、サービスロールをAWS KMSキーポリシーに追加する必要があります。

------
#### [ JSON ]

****  

```
{
		    "Version":"2012-10-17",		 	 	 
            "Statement": [
        {
            "Sid": "AllowAccessToBedrockResources",
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel",
                "bedrock:InvokeModelWithResponseStream",
                "bedrock:CreateModelInvocationJob",
                "bedrock:StopModelInvocationJob",
                "bedrock:GetProvisionedModelThroughput",
                "bedrock:GetInferenceProfile", 
                "bedrock:ListInferenceProfiles",
                "bedrock:GetImportedModel",
                "bedrock:GetPromptRouter",
                "sagemaker:InvokeEndpoint"
            ],
            "Resource": [
                "arn:aws:bedrock:*::foundation-model/*",
                "arn:aws:bedrock:*:111122223333:inference-profile/*",
                "arn:aws:bedrock:*:111122223333:provisioned-model/*",
                "arn:aws:bedrock:*:111122223333:imported-model/*",
                "arn:aws:bedrock:*:111122223333:application-inference-profile/*",
                "arn:aws:bedrock:*:111122223333:default-prompt-router/*",
                "arn:aws:sagemaker:*:111122223333:endpoint/*",
                "arn:aws:bedrock:*:111122223333:marketplace/model-endpoint/all-access"
            ]
        }
    ]
}
```

------

**サービスプリンシパルの要件**  
また、Amazon Bedrock をサービスプリンシパルとして定義する信頼ポリシー指定する必要があります。これにより、このロールを Amazon Bedrock が引き受けることができます。Amazon Bedrock がAWSアカウントにモデル評価ジョブを作成できるようにするには、ワイルドカード (`*`) モデル評価ジョブ ARN が必要です。

------
#### [ JSON ]

****  

```
{
"Version":"2012-10-17",		 	 	 
"Statement": [{
    "Sid": "AllowBedrockToAssumeRole",
    "Effect": "Allow",
    "Principal": {
        "Service": "bedrock.amazonaws.com"
    },
    "Action": "sts:AssumeRole",
    "Condition": {
        "StringEquals": {
            "aws:SourceAccount": "111122223333"
        },
        "ArnEquals": {
            "aws:SourceArn": "arn:aws:bedrock:us-east-1:111122223333:evaluation-job/*"
        }
    }
}]
}
```

------

# Service role requirements for human-based model evaluation jobs
<a name="model-eval-service-roles"></a>

評価者によるモデル評価ジョブを作成するには、サービスロールを指定する必要があります。

以下のリストは、Amazon Bedrock コンソールで指定する必要がある各必須サービスロールの IAM ポリシー要件をまとめたものです。

**Amazon Bedrock サービスロールの IAM ポリシー要件の概要**
+ Amazon Bedrock をサービスプリンシパルとして定義する信頼ポリシーをアタッチする必要があります。
+ Amazon Bedrock がユーザーに代わって選択したモデルを呼び出すことを許可する必要があります。
+ プロンプトデータセットを格納する S3 バケット、および結果を保存する S3 バケットへのアクセスを Amazon Bedrock に許可する必要があります。
+ アカウントに必要なヒューマンループリソースを作成することを Amazon Bedrock に許可する必要があります。
+ (推奨) `Condition` *ブロック*を使用して、アクセスできるアカウントを指定します。
+ (オプション) プロンプトデータセットバケットまたは結果を保存する Amazon S3 バケットを暗号化した場合は、KMS キーの復号化を Amazon Bedrock に許可する必要があります。

**Amazon SageMaker AI サービスロールの IAM ポリシー要件の概要**
+ SageMaker AI をサービスプリンシパルとして定義する信頼ポリシーをアタッチする必要があります。
+ プロンプトデータセットを格納する S3 バケット、および結果を保存する S3 バケットへのアクセスを SageMaker AI に許可する必要があります。
+ (オプション) プロンプトデータセットバケットまたは結果を保存する場所を暗号化した場合は、カスタマーマネージドキーの使用を SageMaker AI に許可する必要があります。

カスタムサービスロールを作成するには、**「IAM ユーザーガイド」の「[カスタム信頼ポリシーを使用したロールの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-custom.html)」を参照してください。

**必要な Amazon S3 の IAM アクション**  
以下のポリシーの例は、モデル評価結果が保存される S3 バケットへのアクセス、および指定したカスタムプロンプトデータセットへのアクセス許可を付与します。このポリシーを SageMaker AI サービスロールと Amazon Bedrock サービスロールの両方にアタッチする必要があります。

------
#### [ JSON ]

****  

```
{
"Version":"2012-10-17",		 	 	 
"Statement": [
    {
        "Sid": "AllowAccessToCustomDatasets",
        "Effect": "Allow",
        "Action": [
            "s3:GetObject",
            "s3:ListBucket"
        ],
        "Resource": [
            "arn:aws:s3:::custom-prompt-dataset"
        ]
    },
    {
        "Sid": "AllowAccessToOutputBucket",
        "Effect": "Allow",
        "Action": [
            "s3:GetObject",
            "s3:ListBucket",
            "s3:PutObject",
            "s3:GetBucketLocation",
            "s3:AbortMultipartUpload",
            "s3:ListBucketMultipartUploads"
        ],
        "Resource": [
            "arn:aws:s3:::model_evaluation_job_output"
        ]
    }
]
}
```

------

**必要な Amazon Bedrock の IAM アクション**  
Amazon Bedrock が自動モデル評価ジョブで指定するモデルを呼び出すことができるようにするには、Amazon Bedrock サービスロールに次のポリシーをアタッチします。ポリシーの `"Resource"` セクションでは、アクセス可能なモデルの ARN を少なくとも 1 つ指定する必要があります。カスタマーマネージド KMS キーで暗号化されたモデルを使用するには、必要な IAM アクションとリソースを IAM サービスロールに追加する必要があります。また、必要な AWS KMS キーポリシー要素を追加する必要があります。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowAccessToBedrockResources",
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel",
                "bedrock:InvokeModelWithResponseStream",
                "bedrock:CreateModelInvocationJob",
                "bedrock:StopModelInvocationJob",
                "bedrock:GetProvisionedModelThroughput",
                "bedrock:GetInferenceProfile", 
                "bedrock:ListInferenceProfiles",
                "bedrock:GetImportedModel",
                "bedrock:GetPromptRouter",
                "sagemaker:InvokeEndpoint"
            ],
            "Resource": [
                "arn:aws:bedrock:*::foundation-model/*",
                "arn:aws:bedrock:*:111122223333:inference-profile/*",
                "arn:aws:bedrock:*:111122223333:provisioned-model/*",
                "arn:aws:bedrock:*:111122223333:imported-model/*",
                "arn:aws:bedrock:*:111122223333:application-inference-profile/*",
                "arn:aws:bedrock:*:111122223333:default-prompt-router/*",
                "arn:aws:sagemaker:*:111122223333:endpoint/*",
                "arn:aws:bedrock:*:111122223333:marketplace/model-endpoint/all-access"
            ]
        }
    ]
}
```

------

**必要な Amazon Augmented AI の IAM アクション**  
Amazon Bedrock が人間ベースのモデル評価ジョブに関連するリソースを作成できるうようにポリシーを作成します。Amazon Bedrock はモデル評価ジョブを開始するために必要なリソースを作成するため、`"Resource": "*"` を使用する必要があります。このポリシーを Amazon Bedrock サービスロールにアタッチする必要があります。

------
#### [ JSON ]

****  

```
{
"Version":"2012-10-17",		 	 	 
"Statement": [
    {
        "Sid": "ManageHumanLoops",
        "Effect": "Allow",
        "Action": [
            "sagemaker:StartHumanLoop",
            "sagemaker:DescribeFlowDefinition",
            "sagemaker:DescribeHumanLoop",
            "sagemaker:StopHumanLoop",
            "sagemaker:DeleteHumanLoop"
        ],
        "Resource": "*"
    }
]
}
```

------

**サービスプリンシパル要件 (Amazon Bedrock)**  
また、Amazon Bedrock をサービスプリンシパルとして定義する信頼ポリシー指定する必要があります。これにより、このロールを Amazon Bedrock が引き受けることができます。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowBedrockToAssumeRole",
            "Effect": "Allow",
            "Principal": {
                "Service": "bedrock.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "111122223333"
                },
                "ArnEquals": {
                    "aws:SourceArn": "arn:aws:bedrock:us-east-1:111122223333:evaluation-job/*"
                }
            }
        }
    ]
}
```

------

**サービスプリンシパル要件 (SageMaker AI)**  
また、Amazon Bedrock をサービスプリンシパルとして定義する信頼ポリシー指定する必要があります。これにより、SageMaker AI はロールを引き受けることができるようになります。

------
#### [ JSON ]

****  

```
{
"Version":"2012-10-17",		 	 	 
"Statement": [
{
  "Sid": "AllowSageMakerToAssumeRole",
  "Effect": "Allow",
  "Principal": {
    "Service": "sagemaker.amazonaws.com"
  },
  "Action": "sts:AssumeRole"
}
]
}
```

------

# 判定モデルを使ったモデル評価ジョブを作成するために必要なサービスロールのアクセス許可
<a name="judge-service-roles"></a>

LLM を判定基準として使用するモデル評価ジョブを作成するには、サービスロールを指定する必要があります。アタッチするポリシーで、Amazon Bedrock にアカウント内のリソースへのアクセスを許可し、Amazon Bedrock がユーザーに代わって選択したモデルを呼び出すことを許可します。

信頼ポリシーは、`bedrock.amazonaws.com` を使用して、Amazon Bedrock をサービスプリンシパルとして定義します。以下の各ポリシーの例では、モデル評価ジョブで呼び出される各サービスで必要な IAM アクションを説明しています。

下記のとおりカスタムサービスロールを作成するには、「*IAM ユーザーガイド*」の「[カスタム信頼ポリシーを使用してロールを作成する](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-custom.html)」を参照してください。

## 必要な Amazon Bedrock の IAM アクション
<a name="judge-service-roles-br"></a>

モデル評価ジョブで指定する予定のモデルを Amazon Bedrock が呼び出すことを許可するポリシーを作成する必要があります。Amazon Bedrock モデルへのアクセスの管理については、「[Access Amazon Bedrock foundation models](model-access.md)」を参照してください。ポリシーの `"Resource"` セクションでは、アクセス可能なモデルの ARN を少なくとも 1 つ指定する必要があります。カスタマーマネージド KMS キーで暗号化されたモデルを使用するには、必要な IAM アクションとリソースを IAM サービスロールポリシーに追加する必要があります。また、サービスロールをAWS KMSキーポリシーに追加する必要があります。

サービスロールには、少なくとも 1 つのサポートされている評価者モデルへのアクセス権限が含まれている必要があります。現時点でのサポート対象の評価者モデルのリストについては、「[サポートされているモデル](evaluation-judge.md#evaluation-judge-supported)」を参照してください。

------
#### [ JSON ]

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": [
		{
			"Sid": "BedrockModelInvoke",
			"Effect": "Allow",
			"Action": [
				"bedrock:InvokeModel",
				"bedrock:CreateModelInvocationJob",
				"bedrock:StopModelInvocationJob"
			],
			"Resource": [
				"arn:aws:bedrock:us-east-1::foundation-model/*",
				"arn:aws:bedrock:us-east-1:111122223333:inference-profile/*",
				"arn:aws:bedrock:us-east-1:111122223333:provisioned-model/*",
				"arn:aws:bedrock:us-east-1:111122223333:imported-model/*"
			]
		}
	]
}
```

------

## 必要な Amazon S3 の IAM アクションとリソース
<a name="judge-service-roles-s3"></a>

サービスロールポリシーには、モデル評価ジョブの出力を保存する Amazon S3 バケットへのアクセス権限と、`CreateEvaluationJob` リクエストまたは Amazon Bedrock コンソールで指定したプロンプトデータセットへのアクセス権限を含める必要があります。

------
#### [ JSON ]

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": [
		{
			"Sid": "FetchAndUpdateOutputBucket",
			"Effect": "Allow",
			"Action": [
				"s3:GetObject",
				"s3:ListBucket",
				"s3:PutObject",
				"s3:GetBucketLocation",
				"s3:AbortMultipartUpload",
				"s3:ListBucketMultipartUploads"
			],
			"Resource": [
				"arn:aws:s3:::my_customdataset1_bucket",
	            "arn:aws:s3:::my_customdataset1_bucket/myfolder",
	            "arn:aws:s3:::my_customdataset2_bucket",
				"arn:aws:s3:::my_customdataset2_bucket/myfolder"
			]
		}
	]
}
```

------

# ナレッジベース評価ジョブのサービスロールの要件
<a name="rag-eval-service-roles"></a>

ナレッジベース評価ジョブを作成するには、サービスロールを指定する必要があります。ロールにアタッチするポリシーにより、Amazon Bedrock にアカウント内のリソースへのアクセスが許可され、Amazon Bedrock は以下を実行できるようになります。
+ 出力生成用に選択したモデルを `RetrieveAndGenerate` API アクションで呼び出し、ナレッジベースの出力を評価する。
+ ナレッジベースインスタンスで Amazon Bedrock ナレッジベースの `Retrieve` API アクションと `RetrieveAndGenerate` API アクションを呼び出す。

カスタムサービスロールを作成するには、「*IAM ユーザーガイド*」の「[カスタム信頼ポリシーを使用してロールを作成する](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-custom.html)」を参照してください。

**Amazon S3 アクセスに必要な IAM アクション**  
次のポリシー例は、以下の両方が行われる S3 バケットへのアクセスを許可します。
+ ナレッジベースの評価結果を保存する。
+ Amazon Bedrock は入力データセットを読み取る。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement":
    [
        {
            "Sid": "AllowAccessToCustomDatasets",
            "Effect": "Allow",
            "Action":
            [
                "s3:GetObject",
                "s3:ListBucket"
            ],
            "Resource":
            [
                "arn:aws:s3:::my_customdataset1_bucket",
                "arn:aws:s3:::my_customdataset1_bucket/myfolder",
                "arn:aws:s3:::my_customdataset2_bucket",
                "arn:aws:s3:::my_customdataset2_bucket/myfolder"
            ]
        },
        {
            "Sid": "AllowAccessToOutputBucket",
            "Effect": "Allow",
            "Action":
            [
                "s3:GetObject",
                "s3:ListBucket",
                "s3:PutObject",
                "s3:GetBucketLocation",
                "s3:AbortMultipartUpload",
                "s3:ListBucketMultipartUploads"
            ],
            "Resource":
            [
                "arn:aws:s3:::my_output_bucket",
                "arn:aws:s3:::my_output_bucket/myfolder"
            ]
        }
    ]
}
```

------

**必要な Amazon Bedrock の IAM アクション**  
Amazon Bedrock に以下を許可するポリシーも作成する必要があります。

1. 以下に対して指定する予定のモデルを呼び出します。
   + `RetrieveAndGenerate` API アクションを使用した結果の生成
   + 結果の評価

   ポリシーの `Resource` キーには、アクセス権を持つモデルの ARN を少なくとも 1 つ指定する必要があります。カスタマーマネージド KMS キーで暗号化されたモデルを使用するには、必要な IAM アクションとリソースを IAM サービスロールポリシーに追加する必要があります。また、サービスロールを AWS KMS キーポリシーに追加する必要があります。

1. `Retrieve` API アクションと `RetrieveAndGenerate` API アクションを呼び出します。コンソールで自動ロール作成を行う場合は、そのジョブに対して評価するアクションを問わず、`Retrieve` API アクションと `RetrieveAndGenerate` API アクションの両方にアクセス許可が付与されることに注意が必要です。これにより、そのロールの柔軟性と再利用性が向上されます。ただし、セキュリティを強化するために、自動作成されたロールは、単一のナレッジベースインスタンスに関連付けられます。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowSpecificModels",
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel",
                "bedrock:InvokeModelWithResponseStream",
                "bedrock:CreateModelInvocationJob",
                "bedrock:StopModelInvocationJob",
                "bedrock:GetProvisionedModelThroughput",
                "bedrock:GetInferenceProfile",
                "bedrock:GetImportedModel"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1::foundation-model/*",
                "arn:aws:bedrock:us-east-1:123456789012:inference-profile/*",
                "arn:aws:bedrock:us-east-1:123456789012:provisioned-model/*",
                "arn:aws:bedrock:us-east-1:123456789012:imported-model/*",
                "arn:aws:bedrock:us-east-1:123456789012:application-inference-profile/*"
            ]
        },
        {
            "Sid": "AllowKnowledgeBaseAPis",
            "Effect": "Allow",
            "Action": [
                "bedrock:Retrieve",
                "bedrock:RetrieveAndGenerate"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1:123456789012:knowledge-base/knowledge-base-id"
            ]
        }
    ]
}
```

------

**サービスプリンシパルの要件**  
また、Amazon Bedrock をサービスプリンシパルとして定義する信頼ポリシー指定する必要があります。このポリシーにより、Amazon Bedrock がロールを引き受けることが許可されます。Amazon Bedrock が AWS アカウントにモデル評価ジョブを作成できるようにするには、ワイルドカード (`*`) モデル評価ジョブ ARN が必要です。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowBedrockToAssumeRole",
            "Effect": "Allow",
            "Principal": {
                "Service": "bedrock.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                },
                "ArnEquals": {
                    "aws:SourceArn": "arn:aws:bedrock:us-east-1:123456789012:evaluation-job/*"
                }
            }
        }
    ]
}
```

------

# Amazon S3 バケットへのアクセスを設定する
<a name="s3-bucket-access"></a>

複数の Amazon Bedrock 機能を使用するには、Amazon S3 バケットに保存されているデータにアクセスする必要があります。このデータにアクセスするには、次のアクセス許可を設定する必要があります。


****  

| ユースケース | 権限 | 
| --- | --- | 
| S3 バケットからデータを取得するためのアクセス許可 | s3:GetObjects3:ListBucket | 
| S3 バケットにデータを書き込むためのアクセス許可 | s3:PutObject | 
| S3 バケットを暗号化した KMS キーを復号するためのアクセス許可 | kms:Decryptkms:DescribeKey | 

上記のアクセス許可をアタッチする必要がある ID またはリソースは、次の要因によって異なります。
+ Amazon Bedrock の複数の機能で、[サービスロール](security-iam-sr.md)を使用します。機能でサービスロールを使用する場合は、ユーザーの IAM ID ではなくサービスロールが S3 データにアクセスできるようにアクセス許可を設定する必要があります。一部の Amazon Bedrock 機能では、AWS マネジメントコンソール を使用している場合、自動的にサービスロールを作成し、必要な [ID ベースのアクセス許可](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies.html#policies_id-based)をサービスロールにアタッチします。
+ Amazon Bedrock の一部の機能では、ID が別のアカウントの S3 バケットにアクセスできるようになります。別のアカウントから S3 データにアクセスする必要がある場合、バケット所有者は、S3 バケットにアタッチされた [S3 バケットポリシー](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-policies.html)に上記の[リソースベースのアクセス許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_resource-based)を含める必要があります。

以下で、S3 データにアクセスするために必要なアクセス許可をアタッチする必要がある場所を特定する方法について説明します。
+ IAM アイデンティティのアクセス許可
  + コンソールでサービスロールを自動作成できる場合、アクセス許可がサービスロール向けに設定されるため、自分で設定する必要はありません。
  + カスタムサービスロールを使用する場合、またはアクセスを必要とする ID がサービスロールでない場合は、[IAM ID にアクセス許可をアタッチして、Amazon S3 バケットへのアクセスを許可する](#s3-bucket-access-identity) に移動して、適切なアクセス許可を持つ ID ベースのポリシーを作成する方法を確認してください。
+ リソースベースのアイデンティティアクセス許可
  + ID が同じアカウントの S3 データにアクセスする必要がある場合は、データを含むバケットに S3 バケットポリシーをアタッチする必要はありません。
  + ID が別のアカウントの S3 データにアクセスする必要がある場合は、[バケットポリシーを Amazon S3 バケットにアタッチして、別のアカウントにバケットポリシーへのアクセスを許可する](#s3-bucket-access-cross-account) に移動して、適切なアクセス許可を持つ S3 バケットポリシーを作成する方法を確認してください。
**重要**  
でサービスロールを自動的に作成すると、適切な ID ベースのアクセス許可がロールにAWS マネジメントコンソールアタッチされますが、アクセスを必要とする ID が別の にある場合は、S3 バケットポリシーを設定する必要がありますAWS アカウント。

詳細については、以下のリンクを参照してください。
+ Amazon S3 のデータへのアクセスの制御の詳細については、「[Amazon S3 でのアクセスコントロール](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-management.html)」を参照してください。
+ Amazon S3 のアクセス許可の詳細については、「[Amazon S3 で定義されるアクション](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html#amazons3-actions-as-permissions)」を参照してください。
+ アクセスAWS KMS許可の詳細については、「 [で定義されるアクションAWS Key Management Service](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html#awskeymanagementservice-actions-as-permissions)」を参照してください。

ユースケースに関連するトピックに進みます。

**Topics**
+ [IAM ID にアクセス許可をアタッチして、Amazon S3 バケットへのアクセスを許可する](#s3-bucket-access-identity)
+ [バケットポリシーを Amazon S3 バケットにアタッチして、別のアカウントにバケットポリシーへのアクセスを許可する](#s3-bucket-access-cross-account)
+ [(高度なセキュリティオプション) よりきめ細かなアクセスのためにステートメントに条件を含める](#s3-bucket-access-conditions)

## IAM ID にアクセス許可をアタッチして、Amazon S3 バケットへのアクセスを許可する
<a name="s3-bucket-access-identity"></a>

このトピックでは、IAM ID にアタッチするポリシーのテンプレートについて説明します。このポリシーには、IAM ID に S3 バケットへのアクセスを許可するアクセス許可を定義する以下のステートメントが含まれています。

1. S3 バケットからデータを取得するためのアクセス許可。このステートメントには、`s3:prefix` [条件キー](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html#amazons3-policy-keys)を使用してバケット内の特定のフォルダへのアクセスを制限する条件も含まれています。この条件の詳細については、「[例 2: 特定のプレフィックスを持つバケット内のオブジェクト一覧の取得](https://docs.aws.amazon.com/AmazonS3/latest/userguide/amazon-s3-policy-keys.html#condition-key-bucket-ops-2)」の「**ユーザーポリシー**」セクションを参照してください。

1. (S3 の場所にデータを書き込む必要がある場合) S3 バケットにデータを書き込むためのアクセス許可。このステートメントには、 条件キーを使用して、特定の から送信されるリクエストへのアクセスを制限する`aws:ResourceAccount`条件も含まれていますAWS アカウント。 [https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourceaccount](https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourceaccount)

1. (S3 バケットが KMS キーで暗号化されている場合) S3 バケットを暗号化した KMS キーを記述および復号するためのアクセス許可。
**注記**  
S3 バケットのバージョニングが有効になっている場合、この機能を使用してアップロードする各オブジェクトバージョンに、独自の暗号化キーを使用できます。どのオブジェクトバージョンにどの暗号化キーを使用したかは、お客様が管理してください。

以下のポリシーのステートメント、リソース、および条件を追加、変更、削除し、必要に応じて *\$1\$1values\$1* を置き換えます。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ReadS3Bucket",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::${S3Bucket}",
                "arn:aws:s3:::${S3Bucket}/*"
            ]
        },
        {
            "Sid": "WriteToS3Bucket",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::${S3Bucket}",
                "arn:aws:s3:::${S3Bucket}/*"
            ]
        },
        {
            "Sid": "DecryptKMSKey",
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt",
                "kms:DescribeKey"
            ],
            "Resource": "arn:aws:kms:us-east-1:123456789012:key/${KMSKeyId}"
        }
    ]
}
```

------

ポリシーをユースケースに変更した後、それを S3 バケットへのアクセスを必要とするサービスロール (または IAM ID) にアタッチします。IAM ID にアクセス許可をアタッチする方法については、「[IAM ID アクセス許可の追加および削除](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)」を参照してください。

## バケットポリシーを Amazon S3 バケットにアタッチして、別のアカウントにバケットポリシーへのアクセスを許可する
<a name="s3-bucket-access-cross-account"></a>

このトピックでは、リソースベースのポリシーを S3 バケットにアタッチして、IAM ID がバケット内のデータにアクセスできるようにするテンプレートについて説明します。このポリシーには、ID がバケットにアクセスするためのアクセス許可を定義する以下のステートメントが含まれています。

1. S3 バケットからデータを取得するためのアクセス許可。

1. (S3 の場所にデータを書き込む必要がある場合) S3 バケットにデータを書き込むためのアクセス許可。

1. (S3 バケットが KMS キーで暗号化されている場合) S3 バケットを暗号化した KMS キーを記述および復号するためのアクセス許可。
**注記**  
S3 バケットのバージョニングが有効になっている場合、この機能を使用してアップロードする各オブジェクトバージョンに、独自の暗号化キーを使用できます。どのオブジェクトバージョンにどの暗号化キーを使用したかは、お客様が管理してください。

アクセス許可は、「[IAM ID にアクセス許可をアタッチして、Amazon S3 バケットへのアクセスを許可する](#s3-bucket-access-identity)」で説明されている ID ベースのアクセス許可と同様です。ただし、各ステートメントでは、`Principal` フィールドのリソースにアクセス許可を付与する ID も指定する必要があります。`Principal` フィールドに ID (Amazon Bedrock のほとんどの機能で、これはサービスロールです) を指定します。以下のポリシーのステートメント、リソース、および条件を追加、変更、削除し、必要に応じて *\$1\$1values\$1* を置き換えます。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ReadS3Bucket",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/ServiceRole"
            },
            "Action": [
                "s3:GetObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::${S3Bucket}",
                "arn:aws:s3:::${S3Bucket}/*"
            ]
        },
        {
            "Sid": "WriteToS3Bucket",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/ServiceRole"
            },
            "Action": [
                "s3:GetObject",
                "s3:PutObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::${S3Bucket}",
                "arn:aws:s3:::${S3Bucket}/*"
            ]
        },
        {
            "Sid": "DecryptKMSKey",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/ServiceRole"
            },
            "Action": [
                "kms:Decrypt",
                "kms:DescribeKey"
            ],
            "Resource": "arn:aws:kms:us-east-1:123456789012:key/${KMSKeyId}"
        }
    ]
}
```

------

ポリシーをユースケースに変更した後、それを S3 バケットにアタッチします。S3 バケットにポリシーをアタッチする方法については、「[Amazon S3 コンソールを使用したバケットポリシーの追加](https://docs.aws.amazon.com/AmazonS3/latest/userguide/add-bucket-policy.html)」を参照してください。

## (高度なセキュリティオプション) よりきめ細かなアクセスのためにステートメントに条件を含める
<a name="s3-bucket-access-conditions"></a>

リソースにアクセスできる ID をより詳細に制御するために、ポリシーステートメントに条件を含めることができます。このトピックのポリシーでは、以下の条件キーを使用する例を示します。
+ `s3:prefix` – S3 バケット内の特定のフォルダへのアクセスを制限する S3 条件キー。この条件キーの詳細については、「[例 2: 特定のプレフィックスを持つバケット内のオブジェクト一覧の取得](https://docs.aws.amazon.com/AmazonS3/latest/userguide/amazon-s3-policy-keys.html#condition-key-bucket-ops-2)」の「**ユーザーポリシー**」セクションを参照してください。
+ `aws:ResourceAccount` – 特定の からのリクエストへのアクセスを制限するグローバル条件キーAWS アカウント。

次のポリシーは、*amzn-s3-demo-bucket S3* S3 バケットの *my-folder* フォルダへの読み取りアクセスを制限し、*amzn-s3-demo-destination-bucket* S3 バケットの書き込みアクセスを ID *111122223333* AWS アカウントの からのリクエストに制限します。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ReadS3Bucket",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket",
                "arn:aws:s3:::amzn-s3-demo-bucket/*"
            ],
            "Condition" : {
                "StringEquals" : {
                    "s3:prefix": "my-folder" 
                }
            }
        },
        {
            "Sid": "WriteToS3Bucket",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-destination-bucket",
                "arn:aws:s3:::amzn-s3-demo-destination-bucket/*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "111122223333"
                }
            }
        }
    ]
}
```

------

条件と条件キーの詳細については、以下のリンクを参照してください。
+ 条件の詳細については、IAM ユーザーガイドの「[IAM JSON ポリシー要素: 条件](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)」を参照してください。
+ S3 に特有の条件キーについては、「サービス認可リファレンス」の「[Amazon S3 の条件キー](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html#amazons3-policy-keys)」を参照してください。
+ で使用されるグローバル条件キーについてはAWS のサービス、[AWS「 グローバル条件コンテキストキー](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourceaccount)」を参照してください。

# Amazon Bedrock のアイデンティティとアクセスに関するトラブルシューティング
<a name="security_iam_troubleshoot"></a>

以下の情報を使用して、Amazon Bedrock と IAM の使用時に発生する可能性がある一般的な問題の診断と修正に役立てます。

**Topics**
+ [I am not authorized to perform an action in Amazon Bedrock](#security_iam_troubleshoot-no-permissions)
+ [I am not authorized to perform iam:PassRole](#security_iam_troubleshoot-passrole)
+ [自分の 以外のユーザーに Amazon Bedrock リソース AWS アカウント へのアクセスを許可したい](#security_iam_troubleshoot-cross-account-access)

## I am not authorized to perform an action in Amazon Bedrock
<a name="security_iam_troubleshoot-no-permissions"></a>

「I am not authorized to perform an action in Amazon Bedrock」というエラーが表示された場合、そのアクションを実行できるようにポリシーを更新する必要があります。

次のエラー例は、`mateojackson` IAM ユーザーがコンソールを使用して、ある `my-example-widget` リソースに関する詳細情報を表示しようとしたことを想定して、その際に必要な `bedrock:GetWidget` アクセス許可を持っていない場合に発生するものです。

```
User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: bedrock:GetWidget on resource: my-example-widget
```

この場合、`bedrock:GetWidget` アクションを使用して `my-example-widget` リソースへのアクセスを許可するように、`mateojackson` ユーザーのポリシーを更新する必要があります。

サポートが必要な場合は、 AWS 管理者にお問い合わせください。サインイン認証情報を提供した担当者が管理者です。

## I am not authorized to perform iam:PassRole
<a name="security_iam_troubleshoot-passrole"></a>

「I am not authorized to perform `iam:PassRole`」というエラーが表示された場合は、Amazon Bedrock にロールを渡すことを許可するようにポリシーを更新する必要があります。

一部の AWS のサービス では、新しいサービスロールまたはサービスにリンクされたロールを作成する代わりに、そのサービスに既存のロールを渡すことができます。そのためには、サービスにロールを渡すアクセス許可が必要です。

次の例のエラーは、`marymajor` という IAM ユーザーがコンソールを使用して Amazon Bedrock でアクションを実行しようとした場合に発生します。ただし、このアクションをサービスが実行するには、サービスロールから付与されたアクセス許可が必要です。Mary には、ロールをサービスに渡すアクセス許可がありません。

```
User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole
```

この場合、Mary のポリシーを更新してメアリーに `iam:PassRole` アクションの実行を許可する必要があります。

サポートが必要な場合は、 AWS 管理者にお問い合わせください。サインイン資格情報を提供した担当者が管理者です。

## 自分の 以外のユーザーに Amazon Bedrock リソース AWS アカウント へのアクセスを許可したい
<a name="security_iam_troubleshoot-cross-account-access"></a>

他のアカウントのユーザーや組織外の人が、リソースにアクセスするために使用できるロールを作成できます。ロールの引き受けを委託するユーザーを指定できます。リソースベースのポリシーまたはアクセスコントロールリスト (ACL) をサポートするサービスの場合、それらのポリシーを使用して、リソースへのアクセスを付与できます。

詳細については、以下を参照してください:
+ Amazon Bedrock がこれらの機能をサポートしているかどうかを確認するには、「[Amazon Bedrock で IAM が機能する仕組み](security_iam_service-with-iam.md)」を参照してください。
+ 所有 AWS アカウント している のリソースへのアクセスを提供する方法については、[「IAM ユーザーガイド」の「所有 AWS アカウント している別の の IAM ユーザーへのアクセスを提供する](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html)」を参照してください。 **
+ リソースへのアクセスをサードパーティーに提供する方法については AWS アカウント、*IAM ユーザーガイド*の[「サードパーティー AWS アカウント が所有する へのアクセスを提供する](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_third-party.html)」を参照してください。
+ ID フェデレーションを介してアクセスを提供する方法については、*IAM ユーザーガイド* の [外部で認証されたユーザー (ID フェデレーション) へのアクセスの許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_federated-users.html) を参照してください。
+ クロスアカウントアクセスにおけるロールとリソースベースのポリシーの使用方法の違いについては、「*IAM ユーザーガイド*」の「[IAM でのクロスアカウントのリソースへのアクセス](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html)」を参照してください。

# カスタムモデルインポートジョブの Amazon S3 バケットへのクロスアカウントアクセス
<a name="cross-account-access-cmi"></a>

Amazon S3 バケットからモデルをインポートし、クロスアカウントで Amazon S3 を使用する場合は、カスタマイズされたモデルをインポートする前に、バケット所有者のアカウントのユーザーにバケットへのアクセス許可を付与する必要があります。「[カスタムモデルのインポートの前提条件](custom-model-import-prereq.md)」を参照してください。

## Amazon S3 バケットへのクロスアカウントアクセスを設定する
<a name="configure-cross-acct-access"></a>

このセクションでは、バケット所有者のアカウント内のユーザーが Amazon S3 バケットにアクセスするためのポリシーを作成する手順について説明します。

1. バケット所有者のアカウントで、バケット所有者のアカウントのユーザーにアクセス権限を付与するバケットポリシーを作成します。

   以下のバケットポリシー例は、バケット所有者がバケット `s3://amzn-s3-demo-bucket` 作成および適用し、バケット所有者のアカウント `123456789123` のユーザーにアクセス権限を付与します。

------
#### [ JSON ]

****  

   ```
   { 
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "CrossAccountAccess",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::123456789012:role/ImportRole"
               },           
               "Action": [
                   "s3:ListBucket",
                   "s3:GetObject"
               ],
               "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-bucket",
                   "arn:aws:s3:::amzn-s3-demo-bucket/*"
               ]
           }
       ]
   }
   ```

------

1. ユーザーの で AWS アカウント、インポート実行ロールポリシーを作成します。バケット所有者の のアカウント ID `aws:ResourceAccount`を指定します AWS アカウント。

   次の例では、ユーザーのアカウントのインポート実行ロールポリシーは、バケット所有者のアカウント ID `111222333444555` に Amazon S3 バケット `s3://amzn-s3-demo-bucket` へのアクセスを提供します。

------
#### [ JSON ]

****  

   ```
   { 
       "Version":"2012-10-17",		 	 	 
      "Statement": [
       {
           "Effect": "Allow",
           "Action": [
               "s3:ListBucket",
               "s3:GetObject"
           ],
           "Resource": [
               "arn:aws:s3:::amzn-s3-demo-bucket",
               "arn:aws:s3:::amzn-s3-demo-bucket/*"
           ],
           "Condition": {
               "StringEquals": {
                   "aws:ResourceAccount": "123456789012"
               }
           }
       }
     ]
   }
   ```

------

## カスタムで暗号化された Amazon S3 バケットへのクロスアカウントアクセスを設定する AWS KMS key
<a name="configure-cross-acct-access-kms"></a>

custom AWS Key Management Service (AWS KMS) キーで暗号化された Amazon S3 バケットがある場合は、バケット所有者のアカウントからユーザーにそのバケットへのアクセスを許可する必要があります。

カスタムで暗号化された Amazon S3 バケットへのクロスアカウントアクセスを設定するには AWS KMS key

1. バケット所有者のアカウントで、バケット所有者のアカウントのユーザーにアクセス権限を付与するバケットポリシーを作成します。

   以下のバケットポリシー例は、バケット所有者がバケット `s3://amzn-s3-demo-bucket` 作成および適用し、バケット所有者のアカウント `123456789123` のユーザーにアクセス権限を付与します。

------
#### [ JSON ]

****  

   ```
   { 
      "Version":"2012-10-17",		 	 	 
      "Statement": [
       {
           "Sid": "CrossAccountAccess",
           "Effect": "Allow",
           "Principal": {
               "AWS": "arn:aws:iam::123456789012:role/ImportRole"
           },           
           "Action": [
               "s3:ListBucket",
               "s3:GetObject"
           ],
           "Resource": [
               "arn:aws:s3:::amzn-s3-demo-bucket",
               "arn:aws:s3:::amzn-s3-demo-bucket/*"
           ]
        }
      ]
   }
   ```

------

1. バケット所有者アカウントで、次のリソースポリシーを作成し、ユーザーのアカウントインポートロールに復号を許可します。

   ```
   {
      "Sid": "Allow use of the key by the destination account",
      "Effect": "Allow",
      "Principal": {
      "AWS": "arn:aws:iam::"arn:aws:iam::123456789123:role/ImportRole"
       },
       "Action": [
             "kms:Decrypt",
             "kms:DescribeKey"
       ],
       "Resource": "*"
   }
   ```

1. ユーザーの で AWS アカウント、インポート実行ロールポリシーを作成します。バケット所有者の のアカウント ID `aws:ResourceAccount`を指定します AWS アカウント。また、バケットの暗号化 AWS KMS key に使用される へのアクセスを提供します。

   次のユーザーアカウントのインポート実行ロールポリシーの例では、バケット所有者のアカウント ID に Amazon S3 バケット`s3://amzn-s3-demo-bucket`と `111222333444555`へのアクセスを提供します。 AWS KMS key `arn:aws:kms:us-west-2:123456789098:key/111aa2bb-333c-4d44-5555-a111bb2c33dd`

------
#### [ JSON ]

****  

   ```
   { 
       "Version":"2012-10-17",		 	 	 
      "Statement": [
         {
           "Effect": "Allow",
           "Action": [
               "s3:ListBucket",
               "s3:GetObject"
           ],
           "Resource": [
               "arn:aws:s3:::amzn-s3-demo-bucket",
               "arn:aws:s3:::amzn-s3-demo-bucket/*"
           ],
           "Condition": {
               "StringEquals": {
                   "aws:ResourceAccount": "123456789012"
               }
           }
        },
        {
         "Effect": "Allow",
         "Action": [
           "kms:Decrypt",
           "kms:DescribeKey"
         ],
         "Resource": "arn:aws:kms:us-west-2:123456789012:key/111aa2bb-333c-4d44-5555-a111bb2c33dd"
       }
     ]
    }
   ```

------

# Amazon Bedrock のコンプライアンス検証
<a name="compliance-validation"></a>

 AWS のサービス が特定のコンプライアンスプログラムの範囲内にあるかどうかを確認するには、「コンプライアンス[AWS のサービス プログラムによるスコープ](https://aws.amazon.com/compliance/services-in-scope/)」の「コンプライアンス」を参照して、関心のあるコンプライアンスプログラムを選択します。一般的な情報については、[AWS 「コンプライアンスプログラム](https://aws.amazon.com/compliance/programs/)」を参照してください。

を使用して、サードパーティーの監査レポートをダウンロードできます AWS Artifact。詳細については、[「Downloading Reports in AWS Artifact](https://docs.aws.amazon.com/artifact/latest/ug/downloading-documents.html)」を参照してください。

を使用する際のお客様のコンプライアンス責任 AWS のサービス は、お客様のデータの機密性、貴社のコンプライアンス目的、適用される法律および規制によって決まります。を使用する際のコンプライアンス責任の詳細については AWS のサービス、[AWS 「 セキュリティドキュメント](https://docs.aws.amazon.com/security/)」を参照してください。

# Amazon Bedrock でのインシデントへの対応
<a name="security-incident-response"></a>

 AWSでは、セキュリティが最優先事項です。 AWS クラウド[責任共有モデル](https://aws.amazon.com/compliance/shared-responsibility-model)の一環として、 は、セキュリティの影響を受けやすい組織の要件を満たすデータセンター、ネットワーク、ソフトウェアアーキテクチャ AWS を管理します。 AWS は、Amazon Bedrock サービス自体に関するインシデント対応を担当します。また、 AWS お客様はクラウドでセキュリティを維持する責任を共有します。つまり、ユーザーは、アクセスできる AWS ツールや機能から実装するセキュリティを制御できます。また、ユーザーは責任共有モデルのユーザー側でインシデント対応を行う責任があります。

クラウド上で稼働するアプリケーションの目標を満たすセキュリティベースラインを確立することで、対応可能な逸脱を検出できます。インシデント対応と選択が企業目標に与える影響を理解するために、次のリソースをご確認ください。
+ [AWS セキュリティインシデント対応ガイド](https://docs.aws.amazon.com/whitepapers/latest/aws-security-incident-response-guide/welcome.html)
+ [AWS セキュリティ、アイデンティティ、コンプライアンスのベストプラクティス](https://aws.amazon.com/architecture/security-identity-compliance)
+ [AWS クラウド導入フレームワーク (CAF) のセキュリティに関する](https://docs.aws.amazon.com/whitepapers/latest/overview-aws-cloud-adoption-framework/security-perspective.html)ホワイトペーパー

 [Amazon GuardDuty](https://aws.amazon.com/guardduty/) は、悪意のある動作や不正な動作を継続的にモニタリングするマネージド脅威検出サービスであり、顧客が AWS アカウントとワークロードを保護し、インシデントにエスカレーションする前に疑わしいアクティビティを特定するのに役立ちます。異常な API コールや、アカウントやリソースが侵害された可能性、悪意のある人物による偵察の可能性を示す不正なデプロイの可能性などのアクティビティをモニタリングします。例えば、Amazon GuardDuty は、ユーザーが新しい場所からログインし、Amazon Bedrock API を使用して Amazon Bedrock Guardrails を削除したり、モデルトレーニングデータ用に設定した Amazon S3 バケットを変更したりするなど、Amazon Bedrock API での疑わしいアクティビティを検出できます。

# Amazon Bedrock の耐障害性
<a name="disaster-recovery-resiliency"></a>

 AWS グローバルインフラストラクチャは、 AWS リージョン およびアベイラビリティーゾーンを中心に構築されています。 は、低レイテンシー、高スループット、高度に冗長なネットワークで接続された、物理的に分離および分離された複数のアベイラビリティーゾーン AWS リージョン を提供します。アベイラビリティーゾーンでは、ゾーン間で中断することなく自動的にフェールオーバーするアプリケーションとデータベースを設計および運用することができます。アベイラビリティーゾーンは、従来の単一または複数のデータセンターインフラストラクチャよりも可用性、フォールトトレランス、および拡張性が優れています。

 AWS リージョン およびアベイラビリティーゾーンの詳細については、[AWS 「 グローバルインフラストラクチャ](https://aws.amazon.com/about-aws/global-infrastructure/)」を参照してください。

# Amazon Bedrock でのインフラストラクチャセキュリティ
<a name="infrastructure-security"></a>

マネージドサービスである Amazon Bedrock は、 AWS グローバルネットワークセキュリティで保護されています。 AWS セキュリティサービスと がインフラストラクチャ AWS を保護する方法については、[AWS 「 クラウドセキュリティ](https://aws.amazon.com/security/)」を参照してください。インフラストラクチャセキュリティのベストプラクティスを使用して AWS 環境を設計するには、*「Security Pillar AWS Well‐Architected Framework*」の[「Infrastructure Protection](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/infrastructure-protection.html)」を参照してください。

 AWS 公開された API コールを使用して、ネットワーク経由で Amazon Bedrock にアクセスします。クライアントは以下をサポートする必要があります。
+ Transport Layer Security (TLS)。TLS 1.2 が必須で、TLS 1.3 をお勧めします。
+ DHE (楕円ディフィー・ヘルマン鍵共有) や ECDHE (楕円曲線ディフィー・ヘルマン鍵共有) などの完全前方秘匿性 (PFS) による暗号スイート。これらのモードは Java 7 以降など、ほとんどの最新システムでサポートされています。

また、リクエストにはアクセスキー ID と、IAM プリンシパルに関連付けられているシークレットアクセスキーを使用して署名する必要があります。または、[AWS Security Token Service](https://docs.aws.amazon.com/STS/latest/APIReference/Welcome.html) (AWS STS) を使用して、一時的なセキュリティ認証情報を生成し、リクエストに署名することもできます。

# サービス間の混乱した代理の防止
<a name="cross-service-confused-deputy-prevention"></a>

混乱した代理問題は、アクションを実行するためのアクセス許可を持たないエンティティが、より特権のあるエンティティにアクションの実行を強制できてしまう場合に生じる、セキュリティ上の問題です。では AWS、サービス間のなりすましにより、混乱した代理問題が発生する可能性があります。サービス間でのなりすましは、1 つのサービス (*呼び出し元サービス*) が、別のサービス (*呼び出し対象サービス*) を呼び出すときに発生する可能性があります。呼び出し元サービスは、本来ならアクセスすることが許可されるべきではない方法でその許可を使用して、別のお客様のリソースに対する処理を実行するように操作される場合があります。これを防ぐために AWS では、お客様のすべてのサービスのデータを保護するのに役立つツールを提供しています。これには、アカウントのリソースへのアクセス許可が付与されたサービスプリンシパルを使用します。

リソースポリシー内では [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) および [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) のグローバル条件コンテキストキーを使用して、Amazon Bedrock が別のサービスに付与する、リソースへのアクセス許可を制限することをお勧めします。クロスサービスアクセスにリソースを 1 つだけ関連付けたい場合は、`aws:SourceArn` を使用します。そのアカウント内のリソースをクロスサービスの使用に関連付けることを許可する場合は、`aws:SourceAccount` を使用します。

混乱した代理問題から保護するための最も効果的な方法は、リソースの完全な ARN を指定して、`aws:SourceArn` グローバル条件コンテキストキーを使用することです。リソースの完全な ARN が不明な場合や、複数のリソースを指定する場合には、グローバルコンテキスト条件キー `aws:SourceArn` で、ARN の未知部分を示すためにワイルドカード文字 (`*`) を使用します。例えば、`arn:aws:bedrock:*:123456789012:*`。

`aws:SourceArn` の値に Amazon S3 バケット ARN などのアカウント ID が含まれていない場合は、両方のグローバル条件コンテキストキーを使用して、アクセス許可を制限する必要があります。

`aws:SourceArn` の値は ResourceDescription である必要があります。

次の例では、Bedrock の `aws:SourceArn` と `aws:SourceAccount` グローバル条件コンテキストキーを使用して、混乱した代理問題を回避する方法を示します。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "bedrock.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "111122223333"
                },
                "ArnEquals": {
                    "aws:SourceArn": "arn:aws:bedrock:us-east-1:111122223333:model-customization-job/*"
                }
            }
        }
    ] 
}
```

------

# Amazon Bedrock での設定と脆弱性の分析
<a name="vulnerability-analysis-and-management"></a>

設定と IT コントロールは、 AWS とお客様の間の責任共有です。詳細については、 AWS [「 責任共有モデル](https://aws.amazon.com/compliance/shared-responsibility-model/)」を参照してください。

# Amazon Bedrock による不正検出
<a name="abuse-detection"></a>

AWS は AI の責任ある使用に取り組んでいます。不正利用の芽を摘むため、Amazon Bedrock は、「[責任ある AI ポリシー](https://aws.amazon.com/machine-learning/responsible-ai/policy/)」またはサードパーティーのモデルプロバイダーの利用規約を含む、 AWSの「[利用規約](https://aws.amazon.com/aup/)(AUP)」および「サービス条件」に対する違反の芽を特定して回避する不正利用自動検出メカニズムを実装しています。

Amazon の不正検出メカニズムは完全に自動化されているため、ユーザー入力やモデル出力を人間が確認したりアクセスしたりする必要はありません。

不正利用の自動検出には以下が含まれます。
+ **コンテンツの分類** - 分類子を使用して、ユーザー入力やモデル出力に含まれる有害なコンテンツ (暴力を扇動するコンテンツなど) を検出します。分類子は、モデルの入力と出力を処理し、攻撃の種類と信頼度を割り当てるアルゴリズムです。これらの分類子は Titan とサードパーティーのモデルの両方に対して実行できます。これには、Amazon Bedrock によるモデルのカスタマイズを使用してファインチューニングされたモデルが含まれる場合があります。分類プロセスは自動化されており、ユーザー入力やモデル出力を人間が確認する必要はありません。
+ **パターンの特定** - 分類メトリクスを使用して、違反の芽や繰り返し発生する動作を特定します。当社では、匿名化された分類メトリクスをまとめ、サードパーティーのモデルプロバイダーと共有する場合があります。Amazon Bedrock はユーザー入力やモデル出力を保管せず、サードパーティーのモデルプロバイダーと共有することもありません。
+ **児童性的虐待コンテンツ (CSAM) の検出とブロック** — お客様は、お客様自身 (およびエンドユーザー) が Amazon Bedrock にアップロードするコンテンツについて責任を負い、こうした違法な画像が含まれるコンテンツを確実に排除する必要があります。CSAM の拡散を防止するために、Amazon Bedrock では自動不正検出メカニズム (ハッシュマッチング技術や分類子など) を使用して、CSAM とみられるコンテンツの検出が行われる場合があります。画像入力に CSAM とみられるコンテンツが検出されると、Amazon Bedrock はリクエストをブロックし、ユーザーに自動エラーメッセージを送信します。Amazon Bedrock から、National Center for Missing and Exploited Children (NCMEC) や関連機関に報告することもできます。当社では、CSAM の問題を重く受け止め、検出、ブロック、報告のメカニズムを引き続き更新していきます。お客様は、適用される法律により追加のアクションを求められる場合があり、こうしたアクションの実施は、お客様の責任となります。

当社の自動不正検出メカニズムによって違反の芽が特定されると、お客様による Amazon Bedrock の使用状況、および当社のサービス条件やサードパーティープロバイダーの利用規約の遵守について、当社から情報を求める場合があります。これらの条件またはポリシーに応答しない、同意しない、または準拠できない場合、Amazon Bedrock へのアクセスが停止 AWS される場合があります。また、モデルのレスポンスがサードパーティーモデルプロバイダーのライセンス条項やポリシーに反していることが自動テストで検出された場合、失敗したファインチューニングジョブに対して課金される場合があります。

その他の質問がある場合は、 AWS サポートにお問い合わせください。詳細については、「[Amazon Bedrock FAQs](https://aws.amazon.com/bedrock/faqs/?refid=6f95042b-28fe-493f-8858-601fe99cea89)」を参照してください。

# プロンプトインジェクションのセキュリティ
<a name="prompt-injection"></a>

 責任[AWS 共有モデル](https://aws.amazon.com/compliance/shared-responsibility-model/)に従い、 AWS は AWS 、サービスを実行するハードウェア、ソフトウェア、ネットワーク、施設など、基盤となるクラウドインフラストラクチャを保護する責任があります。ただし、デプロイされたアプリケーション、データ、リソースを保護する責任はお客様にあります AWS。

Amazon Bedrock のコンテキストでは、 は物理データセンター、ネットワーク、Amazon Bedrock サービス自体など、基盤となるインフラストラクチャのセキュリティ AWS を処理します。ただし、安全なアプリケーション開発とプロンプトインジェクションなどの脆弱性の防止の責任はお客様にあります。

プロンプトインジェクションは、データベースアプリケーションの SQL インジェクションと同様に、アプリケーションレベルのセキュリティ上の懸念です。Amazon RDS や Amazon Aurora などの AWS サービスは安全なデータベースエンジンを提供しますが、お客様はアプリケーションへの SQL インジェクションを防止する責任があります。Amazon Bedrock は自然言語処理のための安全な基盤を提供しますが、お客様はコードのプロンプトインジェクションの脆弱性を防ぐ対策を講じる必要があります。さらに、 は、Bedrock およびその他の AWS サービスの安全なコーディングプラクティスに関する詳細なドキュメント、ベストプラクティス、ガイダンス AWS を提供します。

Amazon Bedrock を使用する際にプロンプトインジェクションやその他のセキュリティ上の脆弱性から保護するには、お客様は以下のベストプラクティスに従う必要があります。
+ **入力の検証** – Amazon Bedrock API またはトークナイザーに渡す前に、すべてのユーザー入力を検証してサニタイズします。これには、特殊文字の削除やエスケープと、入力が期待される形式に準拠していることの確認が含まれます。
+ **セキュアコーディングの実践** – パラメータ化されたクエリの使用、入力のための文字列連結の回避、リソースへのアクセスを許可する際の最小特権の原則の実践など、安全なコーディング実践に従います。
+ **セキュリティテスト** – ペネトレーションテスト、静的コード分析、動的アプリケーションセキュリティテスト (DAST) などの手法を使用して、アプリケーションのプロンプトインジェクションやその他のセキュリティ上の脆弱性を定期的にテストします。
+ **最新の状態に保つ** — Amazon Bedrock SDK、ライブラリ、および依存関係を最新のセキュリティパッチと更新で最新の状態に保ちます。関連する更新やガイダンスについて、 AWS セキュリティのお知らせや発表をモニタリングします。 は詳細なドキュメント、ブログ投稿、サンプルコード AWS を提供し、Bedrock やその他の AWS サービスを使用してお客様が安全なアプリケーションを構築できるようにします。お客様は、これらのリソースを確認し、推奨されるセキュリティのベストプラクティスに従って、アプリケーションをプロンプトインジェクションやその他の脆弱性から保護する必要があります。

Amazon Bedrock ガードレールを使用すると、プロンプトインジェクション攻撃から保護できます。詳細については、「[Amazon Bedrock ガードレールでプロンプト攻撃を検出する](guardrails-prompt-attack.md)」を参照してください。

Amazon Bedrock エージェントを作成するときは、次の手法を使用して、プロンプトインジェクション攻撃から保護します。
+ ガードレールをエージェントに関連付ける。詳細については、「[ガードレールをエージェントに関連付けてアプリケーションの保護を実装する](agents-guardrail.md)」を参照してください。
+ [詳細プロンプト](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html)を使用して、デフォルトの前処理プロンプトを有効にする。すべてのエージェントには、有効にできるデフォルトの前処理プロンプトがあります。これは、基盤モデルを使用してユーザー入力が安全に処理されるかどうかを判断する軽量プロンプトです。デフォルトの動作を使用するか、プロンプトを完全にカスタマイズして、他の分類カテゴリを含めることができます。オプションで、[AWS Lambda](https://docs.aws.amazon.com/bedrock/latest/userguide/lambda-parser.html) 関数に独自の基盤モデルレスポンスパーサーを作成して、独自のカスタムルールを実装できます。

  詳細については、「[Amazon Bedrock エージェントの仕組み](agents-how.md)」を参照してください。
+ 詳細プロンプト機能を使用してシステムプロンプトを更新する。新しいモデルでは、システムプロンプトとユーザープロンプトが区別されます。エージェントでシステムプロンプトを使用する場合は、エージェントができることとできないことの範囲を明確に定義することをお勧めします。また、モデルプロバイダー独自のドキュメントでモデル固有のガイダンスを確認してください。Amazon Bedrock のどのサーバーレスモデルがシステムプロンプトをサポートしているかを確認するには、「[Inference request parameters and response fields for foundation models](model-parameters.md)」を参照してください。