

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 为 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 服务中创建矢量数据库）访问您的 OpenSearch 服务集合
+ （如果您在 Amazon Aurora 中创建向量数据库）访问 Aurora 集群
+ （如果您在Pinecone或中创建矢量数据库Redis Enterprise Cloud）对您的Pinecone或Redis Enterprise Cloud账户 AWS Secrets Manager 进行身份验证的权限
+ （可选）如果您使用 KMS 密钥加密以下任何资源，则还有解密密钥的权限（请参阅[知识库资源的加密](encryption-kb.md)）。
  + 知识库
  + 知识库的数据来源
  + 你在 Amazon OpenSearch 服务中的矢量数据库
  + 您的第三方矢量数据库的秘密 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 索引的权限](#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 在数据摄取期间管理用于临时数据存储的 AWS KMS 密钥的权限](#kb-permissions-kms-ingestion)
+ [管理来自其他用户 AWS 账户的数据源的权限。 AWS](#kb-permissions-otherds)

## 信任关系
<a name="kb-permissions-trust"></a>

以下策略允许 Amazon Bedrock 担任此角色，并创建和管理知识库。下面所示为您可以使用的示例策略。您可以使用一个或多个全局条件上下文键来限制权限的范围。有关更多信息，请参阅 [AWS 全局条件上下文键](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)。将 `aws:SourceAccount` 值设置为您的账户 ID。使用 `ArnEquals` 或 `ArnLike` 条件将范围限制为特定的知识库。

**注意**  
出于安全目的的最佳实践，请在创建知识库 IDs 后将其替换为特定的知识库。{{\*}}

------
#### [ 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 身份验证时才是必需的。  
Confluen OAuth2 ce .0 **访问**令牌的默认到期时间为 60 分钟。如果此令牌在您的数据来源同步（同步作业）时过期，Amazon Bedrock 将使用提供的**刷新**令牌来重新生成此令牌。此重新生成操作会刷新访问令牌和刷新令牌。为了将令牌从当前同步任务更新到下一个同步任务，Amazon Bedrock 需要您的密钥凭证的 write/put 权限。

------
#### [ 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>

如果您使用 AWS KMS 密钥加密了 Amazon S3 中的数据源，请将以下策略附加到您的 Amazon Bedrock 知识库服务角色，以允许 Amazon Bedrock 解密您的密钥。将{{${Region}}}和{{${AccountId}}}替换为密钥所属的区域和账户 ID。{{${KeyId}}}替换为 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`在特定的知识库中使用{{${KnowledgeBaseArn}}}，请提供并使用以下政策：

------
#### [ 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": ""
        }
    }
}
```

### 基岩数据自动化 (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/*"
}
```

如果您将客户管理的 AWS KMS 密钥与 BDA 一起使用，请同时附上以下策略。用您的特定值替换{{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 索引的权限
<a name="kb-permissions-kendra"></a>

如果您为知识库创建了 Amazon Kendra GenAI 索引，请为 Amazon Bedrock 知识库服务角色附加以下策略，以允许其访问该索引。在策略中，将{{${Partition}}}、{{${Region}}}{{${AccountId}}}、和{{${IndexId}}}替换为索引的值。您可以通过将多个索引添加到 `Resource` 列表来允许访问这些索引。要允许访问您的中的每个索引 AWS 账户，请替换{{${IndexId}}}为通配符 (\*)。

------
#### [ 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 知识库服务角色以允许访问该馆藏。将{{${Region}}}和{{${AccountId}}}替换为数据库所属的区域和账户 ID。在中输入您的 Amazon OpenSearch 服务系列的 ID {{${CollectionId}}}。您可以通过将多个集合添加到 `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 集群必须与 AWS 账户 为亚马逊 Bedrock 创建知识库的集群位于同一集群中。

如果您在 Amazon Aurora 中为知识库创建了数据库（DB）集群，请为 Amazon Bedrock 知识库服务角色附加策略，以允许其访问该 DB 集群并提供对它的读写权限。将{{${Region}}}和{{${AccountId}}}替换为数据库集群所属的区域和账户 ID。在中输入您的亚马逊 Aurora 数据库集群的 ID {{${DbClusterId}}}。您可以通过将多个 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 知识库服务角色附加以下策略，以允许其访问该图表。在策略中，将{{${Region}}}和{{${AccountId}}}替换为数据库所属的区域和账户 ID。{{${GraphId}}}替换为图形数据库的值。

------
#### [ 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 知识库服务角色附加以下策略，以允许其访问向量索引。

在策略中，将{{${Region}}}和{{${AccountId}}}替换为矢量索引所属的区域和账户 ID。{{${BucketName}}}替换为 S3 矢量存储桶的{{${IndexName}}}名称和矢量索引的名称。有关 Amazon S3 Vectors 的更多信息，请参阅[设置使用 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 以允许对您的账户进行身份验证以访问数据库。将{{${Region}}}和{{${AccountId}}}替换为数据库所属的区域和账户 ID。{{${SecretId}}}替换为您的密钥的 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 在数据摄取期间管理用于临时数据存储的 AWS KMS 密钥的权限
<a name="kb-permissions-kms-ingestion"></a>

要允许在摄取数据源的过程中为临时数据存储创建 AWS KMS 密钥，请将以下策略附加到您的 Amazon Bedrock 知识库服务角色。将{{${Region}}}、和 {{${AccountId}}}{{${KeyId}}}，替换为相应的值。

------
#### [ 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 存储桶的角色。将{{${BucketName}}}、和 {{${BucketOwnerAccountId}}}{{${BucketNameAndPrefix}}}，替换为相应的值。

**知识库角色所需的权限**

知识库创建 `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"
                }
            }
        }
    ]
}
```

------

如果使用 AWS KMS 密钥对 Amazon S3 存储桶进行加密，则还需要将以下内容添加到知识库角色中。用相应的值替换和。{{${BucketOwnerAccountId}}} {{${Region}}}

```
{
        "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 存储桶策略。将{{${KbRoleArn}}}、和 {{${BucketName}}}{{${BucketNameAndPrefix}}}，替换为相应的值。

------
#### [ 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 密钥策略需要以下策略。用相应的值替换和。{{${KbRoleArn}}} {{${KmsKeyArn}}}

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