

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

# 为离线源配置 S3 访问权限
<a name="virtual-source-s3-permissions"></a>

在创建离线源数据提供程序时，您需要提供一个 IAM 角色 ARN (`S3AccessRoleArn`)，允许 DMS 架构转换从 S3 存储桶读取 DDL 脚本。DMS 扮演此角色访问您指定的 S3 路径上的文件。

**为离线源配置 S3 权限**

1. 使用允许 DMS 服务委托人代入的信任策略创建 IAM 角色。使用以下信任策略：

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": "dms.amazonaws.com"
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

1. 向角色附加权限策略，授予对 S3 存储桶的读取权限。该角色需要以下权限：  
**所需的 S3 权限**    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/dms/latest/userguide/virtual-source-s3-permissions.html)
**注意**  
如果您的 S3 存储桶使用 AWS KMS (SSE-KMS) 的服务器端加密，请向 IAM 角色添加 KMS 密钥的`kms:Decrypt`权限。如果您的存储桶使用默认 Amazon S3 托管加密 (SSE-S3) 或未加密，则无需其他权限。

   以下示例策略授予这些权限的范围仅限于特定的存储桶和前缀：

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

   将{{amzn-s3-demo-bucket}}和{{prefix}}替换为您的存储桶名称和 DDL 脚本的路径。

1. 创建离线源数据提供器时，请提供角色 ARN 作为`S3AccessRoleArn`参数，并提供 DDL 脚本的 S3 位置作为参数。`S3Path`

**注意**  
IAM 角色必须与 DMS 资源位于同一个 AWS 账户中。 Cross-account 离线源数据提供者不支持 S3 访问。