

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 為受管 Amazon Bedrock 知識庫建立服務角色
<a name="kb-managed-permissions"></a>

若要將自訂角色用於受管知識庫，而非 Amazon Bedrock 自動建立的知識庫，請建立 IAM 角色，並依照[建立角色以將許可委派給 AWS 服務中的步驟連接下列許可](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-multimodal-storage)
+ [存取您的資料來源的許可](#kb-managed-permissions-access-ds)

## 信任關係
<a name="kb-managed-permissions-trust"></a>

下列政策允許 Amazon Bedrock 擔任此角色，並建立和管理知識庫。您可以使用一或多個全域條件內容索引鍵來限制權限範圍。如需詳細資訊，請參閱 [AWS 全域條件內容索引鍵](IAM/latest/UserGuide/reference_policies_condition-keys.html)。將 `aws:SourceAccount` 值設定為您的帳戶 ID。使用 `ArnEquals` 或 `ArnLike` 條件將範圍限制為特定的知識庫。

**注意**  
作為安全目的的最佳實務，請在建立特定知識庫 ID 之後，將 {{\*}} 取代為特定知識庫 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"
            ]
        }
    ]
}
```

------

如果您使用TwelveLabs Marengo Embed 3.0內嵌模型，知識庫會同步和非同步叫用模型，因此角色需要兩者的許可。連接下列陳述式，以知識庫的 AWS 區域 和 帳戶 ID 取代 {{${Region}}} 和 {{${AccountId}}}，並以您使用的推論設定檔 ID 取代 {{${InferenceProfileId}}}。`foundation-model` ARN 會`*`針對區域使用 ，而非特定區域。這是必要的，因為跨區域推論描述檔可以將模型調用路由到其任何成員的基礎模型 AWS 區域。

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "BedrockInvokeModelStatement",
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel"
            ],
            "Resource": [
                "arn:aws:bedrock:*::foundation-model/twelvelabs.marengo-embed-3-0-v1:0",
                "arn:aws:bedrock:{{${Region}}}:{{${AccountId}}}:inference-profile/{{${InferenceProfileId}}}",
                "arn:aws:bedrock:{{${Region}}}:{{${AccountId}}}:async-invoke/*"
            ]
        },
        {
            "Sid": "BedrockGetAsyncInvokeStatement",
            "Effect": "Allow",
            "Action": [
                "bedrock:GetAsyncInvoke"
            ],
            "Resource": [
                "arn:aws:bedrock:{{${Region}}}:{{${AccountId}}}:async-invoke/*"
            ]
        }
    ]
}
```

**注意**  
上述政策包含[推論描述](inference-profiles-support.md)檔 ARN，因為在某些政策中 AWS 區域 ，您必須在建立知識庫時指定TwelveLabs Marengo Embed 3.0模型的推論描述檔。在這些區域中，知識庫同時使用推論設定檔和隨需模型，因此角色需要存取兩者。如果您不使用推論描述檔，您可以從`Resource`清單中省略推論描述檔 ARN。  
若要判斷您使用的區域是否需要推論設定檔，請參閱 [原生多模式處理](kb-managed-native-multimodal.md)。

## 多模式儲存目的地的許可
<a name="kb-managed-permissions-multimodal-storage"></a>

多模態儲存目的地是 Amazon S3 儲存貯體，用於處理多模態內容並將其擷取到您的知識庫。Amazon Bedrock 知識庫會在儲存貯體中建立`aws/`字首資料夾，以便於存取。

連接下列政策，為角色提供讀取、寫入和刪除此內容的許可。以多模式儲存貯體的名稱取代 {{amzn-s3-demo-bucket}}。

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

## 存取您的資料來源的許可
<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 儲存貯體中，您還必須將`s3:GetObject`許可授予儲存貯體的服務角色，以及儲存憑證檔案 (.pfx 或 .pem) 的金鑰。下列範例顯示所需的其他政策陳述式：  

```
{
    "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>

連接下列政策，以提供 角色透過 Web 爬蟲程式存取網站的許可。如果您的網站需要身分驗證，請包含存取存放憑證之 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}}}"
        ]
    }]
}
```