

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

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

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

**注記**  
サービスロールを使用する場合、ポリシーを複数のロール間で共有することはできません。
+ 信頼関係
+ Amazon Bedrock のベースモデルへのアクセス
+ データを保存するデータソースへのアクセス

**Topics**
+ [信頼関係](#kb-managed-permissions-trust)
+ [Amazon Bedrock モデルにアクセスするためのアクセス許可](#kb-managed-permissions-access-models)
+ [データソースにアクセスするためのアクセス許可](#kb-managed-permissions-access-ds)

## 信頼関係
<a name="kb-managed-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` 条件を使用して、範囲を特定のナレッジベースに制限します。

**注記**  
セキュリティ上のベストプラクティスとして、{{\*}} は特定のナレッジベース 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-managed-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-managed-permissions-access-ds"></a>

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

**Topics**
+ [Amazon S3 データソースにアクセスするためのアクセス許可](#kb-managed-permissions-access-s3)
+ [Confluence データソースにアクセスするためのアクセス許可](#kb-managed-permissions-access-confluence)
+ [Microsoft SharePoint データソースにアクセスするためのアクセス許可](#kb-managed-permissions-access-sharepoint)
+ [Web Crawler データソースへのアクセス許可](#kb-managed-permissions-access-webcrawler)
+ [Microsoft OneDrive データソースへのアクセス許可](#kb-managed-permissions-access-onedrive)
+ [Google Drive データソースへのアクセス許可](#kb-managed-permissions-access-googledrive)

### Amazon S3 データソースにアクセスするためのアクセス許可
<a name="kb-managed-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-managed-permissions-access-confluence"></a>

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

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

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

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

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

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

**注記**  
証明書ベースの認証 (X.509) を使用して Amazon S3 バケットに証明書を保存する場合は、証明書ファイル (.pfx または .pem) が保存されているバケットとキーのサービスロールにもアクセス`s3:GetObject`許可を付与する必要があります。次の例は、必要な追加のポリシーステートメントを示しています。  

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [{
        "Effect": "Allow",
        "Action": [
            "s3:GetObject"
        ],
        "Resource": [
            "arn:aws:s3:::{{${CertificateBucketName}}}/{{${CertificateKeyPath}}}"
        ]
    }]
}
```

### Web Crawler データソースへのアクセス許可
<a name="kb-managed-permissions-access-webcrawler"></a>

次のポリシーをアタッチして、ウェブクローラーを介してウェブサイトにアクセスするためのアクセス許可をロールに付与します。ウェブサイトで認証が必要な場合は、認証情報を保存する AWS Secrets Manager シークレットにアクセスするためのアクセス許可を含めます。

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

### Microsoft OneDrive データソースへのアクセス許可
<a name="kb-managed-permissions-access-onedrive"></a>

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

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

### Google Drive データソースへのアクセス許可
<a name="kb-managed-permissions-access-googledrive"></a>

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

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