

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

# 設定 Transfer Family Web 應用程式的 IAM 角色
<a name="webapp-roles"></a>

您需要兩個角色：一個用於做為 Web 應用程式的身分持有者角色，第二個用於設定存取授權。身分持有者角色是在其工作階段中包含已驗證使用者身分的角色。它用於代表使用者向 S3 Access Grants 提出資料存取請求。

**注意**  
您可以略過建立身分承載角色的程序。如需有關讓 Transfer Family 服務建立身分承載角色的資訊，請參閱 [建立 Transfer Family Web 應用程式](webapp-configure.md#web-app-create)。  
您可以略過建立存取授權角色的程序。在建立存取授權的程序中，在您註冊 S3 位置的步驟中，選擇**建立新角色**。

**建立身分承載角色**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 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 Access Grants 擔任的角色，將臨時憑證提供給承授者。

**注意**  
如果您允許服務為您建立身分持有者角色，該角色會設定混淆代理人保護。因此，其程式碼與此處顯示的內容不同。

**建立存取授權角色**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

1. 選擇**角色**，然後選擇**建立角色**。此角色應具有存取 中 S3 資料的許可 AWS 區域。

1. 選擇**自訂信任政策**，然後貼上下列程式碼。

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

1. 選擇**下一步**新增最少的政策，如[註冊位置](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-grants-location-register.html)中所述。雖然不建議，但您可以新增 **AmazonS3FullAccess** 受管政策，這可能過於寬鬆，滿足您的需求。

1. 選擇**下一步**，然後輸入名稱 （例如 `access-grants-location`)。

1. 選擇**建立角色**以建立角色。

**注意**  
如果您允許服務為您建立存取授權角色，該角色會設定混淆代理人保護。因此，其程式碼與此處顯示的內容不同。