

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

# 为 Transfer Family 网络应用程序配置 IAM 角色
<a name="webapp-roles"></a>

您将需要两个角色：一个用作 Web 应用程序的身份持有者角色，另一个用于配置访问授权。身份持有者角色是在其会话中包含经过身份验证的用户的身份的角色。它用于代表用户向 S3 访问授权请求数据访问权限。

**注意**  
您可以跳过创建身份持有者角色的过程。有关让 Transfer Family 服务创建身份持有者角色的信息，请参阅[创建 Transfer Family 网络应用程序](webapp-configure.md#web-app-create)。  
您可以跳过创建访问权限授予角色的过程。在创建访问权限的过程中，在注册 S3 位置的步骤中，选择**创建新角色**。

**创建身份持有者角色**

1. 登录 Amazon Web Services 管理控制台 并打开 IAM 控制台，网址为[https://console.aws.amazon.com/iam/](https://console.amazonaws.cn/iam/)。

1. 选择**角色**，然后选择**创建角色**。

1. 选择 “**自定义信任策略**”，然后粘贴以下代码。

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

1. 选择 “**下一步**”，然后跳过 “**添加权限**”，然后再次选择 “**下一步**”。

1. 例如，输入名称`web-app-identity-bearer`。

1. 选择**创建角色**以创建身份持有者角色。

1. 从列表中选择您刚刚创建的角色，然后在 “**权限策略**” 面板中，选择 “**添加权限**” > “**创建内联策略**”。

1. 在**策略编辑器**中，选择 **JSON**，然后粘贴到以下代码块中。

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "s3:GetDataAccess",
                   "s3:ListCallerAccessGrants",
                   "s3:ListAccessGrantsInstances"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

1. 在策略名称中输入`AllowS3AccessGrants`，然后选择**创建策略**。

接下来，您将创建 S3 访问权限授予的角色来向被授权者提供临时证书。

**注意**  
如果您允许服务为您创建身份持有者角色，则该角色会混淆副手保护。因此，它的代码与此处显示的不同。

**创建访问权限授予角色**

1. 登录 Amazon Web Services 管理控制台 并打开 IAM 控制台，网址为[https://console.aws.amazon.com/iam/](https://console.amazonaws.cn/iam/)。

1. 选择**角色**，然后选择**创建角色**。此角色应有权在中访问您的 S3 数据 Amazon Web Services 区域。

1. 选择 “**自定义信任策略**”，然后粘贴以下代码。

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

1. 选择 “**下一步**” 添加最低限度政策，如[注册位置](https://docs.amazonaws.cn/AmazonS3/latest/userguide/access-grants-location-register.html)中所述。尽管不建议这样做，但您可以添加 **AmazonS3 FullAccess** 托管政策，该政策可能过于宽松，无法满足您的需求。

1. 选择 “**下一步**”，然后输入名称（例如`access-grants-location`）。

1. 选择**创建角色**以创建角色。

**注意**  
如果您允许服务为您创建访问权限授予角色，则该角色会混淆副手保护。因此，它的代码与此处显示的不同。