

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

# 更新角色信任政策
<a name="id_roles_update-role-trust-policy"></a>

若要變更誰可擔任該角色，您必須修改角色的信任政策。您無法修改[服務連結角色](id_roles.md#iam-term-service-linked-role)**的信任政策。

**備註**  
如果使用者已於角色信任政策中列為主體，卻無法擔任該角色，請檢查該使用者的[許可界限](access_policies_boundaries.md)。如果已經設定使用者的許可界限，則其必須允許 `sts:AssumeRole` 動作。
若要允許使用者在角色工作階段中再次擔任目前角色，請在角色信任政策中將角色 ARN 或 AWS 帳戶 ARN 指定為主體。 AWS 服務 提供運算資源，例如 Amazon EC2、Amazon ECS、Amazon EKS 和 Lambda，可提供臨時登入資料並自動更新這些登入資料。此可確保您始終擁有一組有效的憑證。對於這些服務，不需要再次擔任目前的角色即可取得臨時憑證。但是，如果您想要傳遞[工作階段標籤](id_session-tags.md)或一個[工作階段政策](access_policies.md#policies_session)，則需要再次擔任目前的角色。


## 更新角色信任政策 (主控台)
<a name="id_roles_update-trust-policy-console"></a>

**在 中變更角色信任政策 AWS 管理主控台**

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

1. 在 IAM 主控台的導覽窗格中，選擇 **Roles** (角色)。

1. 在您帳戶的角色清單中，選擇您想要修改的角色名稱。

1. 選擇 **Trust Relationships** (信任關係) 標籤，然後選擇 **Edit Trust Relationship** (編輯信任政策)。

1. 視需要編輯信任政策。若要新增其他可擔任該角色的主體，請在 `Principal` 元素中指定它們。例如，下列政策程式碼片段示範如何在 `Principal`元素 AWS 帳戶 中參考兩個：

   ```
   "Principal": {
     "AWS": [
       "arn:aws:iam::111122223333:root",
       "arn:aws:iam::444455556666:root"
     ]
   },
   ```

   如果您指定在另一個帳戶中的主體，這時在角色的信任政策中新增帳戶，只能建立一半的跨帳戶信任關係。根據預設，信任帳戶中沒有任何使用者可擔任該角色。剛信任的帳戶管理員必須授予新的使用者擔任該角色的許可。為了這樣做，管理員必須建立或編輯連接於使用者的政策，以允許使用者存取 `sts:AssumeRole` 動作。如需詳細資訊，請參閱下列程序或 [向使用者授予切換角色的許可](id_roles_use_permissions-to-switch.md)。

   下列政策程式碼片段示範如何在 `Principal`元素中參考兩項 AWS 服務：

   ```
   "Principal": {
     "Service": [
       "opsworks.amazonaws.com",
       "ec2.amazonaws.com"
     ]
   },
   ```

1. 當您完成編輯您的信任政策，請選擇 **Update policy** (更新政策) 來儲存您的變更。

   如需有關政策結構和語法的詳細資訊，請參閱 [中的政策和許可 AWS Identity and Access Management](access_policies.md) 和 [IAM JSON 政策元素參考](reference_policies_elements.md)。

**允許信任外部帳戶中的使用者使用該角色 (主控台)**

如需有關此程序的更多資訊和詳細資訊，請參閱 [向使用者授予切換角色的許可](id_roles_use_permissions-to-switch.md)。

1. 登入受信任的外部 AWS 帳戶。

1. 決定是否將許可連接到使用者或群組。在 IAM 主控台的導覽窗格中，相應地選擇 **Users** (使用者) 或 **User groups** (使用者群組)。

1. 選擇要授予其存取許可的使用者或群組的名稱，然後選擇 **Permissions (許可)** 標籤。

1. 執行下列任一步驟：
   + 若要編輯客戶受管政策，請選擇政策名稱，並選擇 **Edit policy (編輯政策)**，然後選擇 **JSON** 標籤。您無法編輯具有 AWS 圖示 (![\[Orange cube icon indicating a policy is managed by AWS.\]](http://docs.aws.amazon.com/zh_tw/IAM/latest/UserGuide/images/policy_icon.png)) 的 受 AWS 管 AWS 政策。如需有關 AWS 受管政策與客戶受管政策之間差異的詳細資訊，請參閱 [受管政策與內嵌政策](access_policies_managed-vs-inline.md)。
   + 若要編輯內嵌政策，請選擇政策名稱旁的箭頭，然後選擇 **Edit policy (編輯政策)**。

1. 在政策編輯器中，新增一個指定以下內容的新 `Statement` 元素：

   ```
   {
     "Effect": "Allow",
     "Action": "sts:AssumeRole",
     "Resource": "arn:aws:iam::ACCOUNT-ID:role/ROLE-NAME"
   }
   ```

   將陳述式中的 ARN 取代為使用者可擔任的角色的 ARN。

1. 按照螢幕上的提示來完成政策編輯。

## 更新角色信任政策 (AWS CLI)
<a name="id_roles-update-trust-policy-cli"></a>

您可以使用 AWS CLI 來變更誰可以擔任角色。

**修改角色信任政策 (AWS CLI)**

1. (選用) 如果您不知道要修改的角色的名稱，請執行以下命令列出您帳戶中的角色：
   + [aws iam list-roles](https://docs.aws.amazon.com/cli/latest/reference/iam/list-roles.html)

1. (選用) 若要檢視角色的目前信任政策，請執行下列命令：
   + [aws iam get-role](https://docs.aws.amazon.com/cli/latest/reference/iam/get-role.html)

1. 若要修改可以存取角色的信任主體，請使用更新的信任政策建立文字檔案。您可以使用任何文字編輯器來建構政策。

   例如，下列信任政策顯示如何在 `Principal` 元素中參考兩個 AWS 帳戶 。這可讓兩個不同 內的使用者 AWS 帳戶 擔任此角色。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": {
           "Effect": "Allow",
           "Principal": {"AWS": [
               "arn:aws:iam::111122223333:root",
               "arn:aws:iam::444455556666:root"
           ]},
           "Action": "sts:AssumeRole"
       }
   }
   ```

------

   如果您指定在另一個帳戶中的主體，這時在角色的信任政策中新增帳戶，只能建立一半的跨帳戶信任關係。根據預設，信任帳戶中沒有任何使用者可擔任該角色。剛信任的帳戶管理員必須授予新的使用者擔任該角色的許可。為了這樣做，管理員必須建立或編輯連接於使用者的政策，以允許使用者存取 `sts:AssumeRole` 動作。如需詳細資訊，請參閱下列程序或 [向使用者授予切換角色的許可](id_roles_use_permissions-to-switch.md)。

1. 若要使用剛建立的檔案更新信任政策，請執行下列命令：
   + [aws iam update-assume-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/update-assume-role-policy.html)

**若要允許信任外部帳戶中的使用者使用該角色 (AWS CLI)**

如需有關此程序的更多資訊和詳細資訊，請參閱 [向使用者授予切換角色的許可](id_roles_use_permissions-to-switch.md)。

1. 建立 JSON 檔案，其中包含擔任該角色所需的許可的許可政策。例如，以下政策包含最低必要許可：

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": {
           "Effect": "Allow",
           "Action": "sts:AssumeRole",
           "Resource": "arn:aws:iam::111122223333:role/ROLE-NAME"
       }
   }
   ```

------

   將陳述式中的 ARN 取代為使用者可擔任的角色的 ARN。

1. 執行以下命令以上傳 JSON 檔案 (其中包含的信任政策) 至 IAM：
   + [aws iam create-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/create-policy.html)

   此命令的輸出結果含有該政策的 ARN。記下此 ARN，因為您需要在稍後的步驟中使用。

1. 決定將政策到連接哪位使用者或群組。如果您不知道適用的使用者或群組的名稱，請使用下列其中一個命令來列出帳戶中的使用者或群組：
   + [aws iam list-users](https://docs.aws.amazon.com/cli/latest/reference/iam/list-users.html)
   + [aws iam list-groups](https://docs.aws.amazon.com/cli/latest/reference/iam/list-groups.html)

1. 使用下列命令之一將您在之前的步驟中建立的政策連接到使用者或群組：
   + [aws iam attach-user-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/attach-user-policy.html)
   + [aws iam attach-group-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/attach-group-policy.html)

## 更新角色信任政策 (AWS API)
<a name="id_roles-update-trust-policy-api"></a>

您可以使用 AWS API 來變更誰可以擔任角色。

**修改角色信任政策 (AWS API)**

1. (選用) 如果您不知道要修改的角色的名稱，請呼叫以下操作列出您帳戶中的角色：
   + [ListRoles](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListRoles.html)

1. (選用) 若要檢視角色的目前信任政策，請呼叫下列操作：
   + [GetRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRole.html)

1. 若要修改可以存取角色的信任主體，請使用更新的信任政策建立文字檔案。您可以使用任何文字編輯器來建構政策。

   例如，下列信任政策顯示如何在 `Principal` 元素中參考兩個 AWS 帳戶 。這可讓兩個不同 內的使用者 AWS 帳戶 擔任此角色。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": {
           "Effect": "Allow",
           "Principal": {"AWS": [
               "arn:aws:iam::111122223333:root",
               "arn:aws:iam::444455556666:root"
           ]},
           "Action": "sts:AssumeRole"
       }
   }
   ```

------

   如果您指定在另一個帳戶中的主體，這時在角色的信任政策中新增帳戶，只能建立一半的跨帳戶信任關係。根據預設，信任帳戶中沒有任何使用者可擔任該角色。剛信任的帳戶管理員必須授予新的使用者擔任該角色的許可。為了這樣做，管理員必須建立或編輯連接於使用者的政策，以允許使用者存取 `sts:AssumeRole` 動作。如需詳細資訊，請參閱下列程序或 [向使用者授予切換角色的許可](id_roles_use_permissions-to-switch.md)。

1. 若要使用剛建立的檔案更新信任政策，請呼叫下列操作：
   + [UpdateAssumeRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAssumeRolePolicy.html)

**允許受信任外部帳戶中的使用者使用該角色 (AWS API)**

如需有關此程序的更多資訊和詳細資訊，請參閱 [向使用者授予切換角色的許可](id_roles_use_permissions-to-switch.md)。

1. 建立 JSON 檔案，其中包含擔任該角色所需的許可的許可政策。例如，以下政策包含最低必要許可：

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": {
           "Effect": "Allow",
           "Action": "sts:AssumeRole",
           "Resource": "arn:aws:iam::111122223333:role/ROLE-NAME"
       }
   }
   ```

------

   將陳述式中的 ARN 取代為使用者可擔任的角色的 ARN。

1. 呼叫以下操作，以上傳 JSON 檔案 (其中包含的信任政策) 至 IAM：
   + [CreatePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreatePolicy.html)

   此操作的輸出結果含有該政策的 ARN。記下此 ARN，因為您需要在稍後的步驟中使用。

1. 決定將政策到連接哪位使用者或群組。如果您不知道適用的使用者或群組的名稱，請呼叫下列其中一個操作來列出帳戶中的使用者或群組：
   + [ListUsers](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListUsers.html)
   + [ListGroups](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListGroups.html)

1. 呼叫下列操作之一將您在之前的步驟中建立的政策連接到使用者或群組：
   +  API: [AttachUserPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AttachUserPolicy.html)
   + [AttachGroupPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AttachGroupPolicy.html)