

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

# 在 中建立和使用客戶受管許可 AWS RAM
<a name="create-customer-managed-permissions"></a>

AWS Resource Access Manager (AWS RAM) 為您可以共用的每個資源類型提供至少一個 AWS 受管許可。不過，這些受管許可可能不會為您的共用使用案例提供[最低權限存取](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege)。當其中一個提供的 AWS 受管許可無法運作時，您可以建立自己的*客戶受管許可*。

客戶受管許可是您編寫和維護的受管許可，透過精確指定哪些動作可在使用 共用資源的條件下執行 AWS RAM。例如，您想要限制 Amazon VPC IP Address Manager (IPAM) 集區的讀取存取權，這可協助您大規模管理 IP 地址。您可以建立客戶受管許可，讓開發人員指派 IP 地址，但無法檢視其他開發人員帳戶指派的 IP 地址範圍。您可以遵循最低權限的最佳實務，只授予對共用資源執行任務所需的許可。

此外，您可以視需要更新或刪除客戶受管許可。

**Topics**
+ [建立客戶受管許可](#create_cmp)
+ [建立新的客戶受管許可版本](#update_mp)
+ [選擇要作為客戶受管許可預設值的不同版本](#set_new_mp_default_version)
+ [刪除客戶受管許可版本](#delete_mp_version)
+ [刪除客戶受管許可](#delete_mp)

## 建立客戶受管許可
<a name="create_cmp"></a>

客戶受管許可專屬於 AWS 區域。請務必在適當的區域中建立此客戶受管許可。

------
#### [ Console ]

**建立客戶受管許可**

1. 執行以下任意一項：
   + 導覽至**[受管許可程式庫](https://console.aws.amazon.com/ram/home#Permissions:)**，然後選擇**建立客戶受管許可**。
   + 直接導覽至 主控台中的**[建立客戶受管許可](https://console.aws.amazon.com/ram/home#CreatePermission:)**頁面。

1. 針對**客戶受管許可詳細資訊**，輸入客戶受管許可名稱。

1. 選擇套用此受管許可的資源類型。

1. 對於**政策範本**，您可以定義允許在此資源類型上執行的操作。
   + 您可以選擇**匯入受管許可**，以使用現有受管許可中的動作。
   + 在視覺化編輯器中選取或取消選取存取層級資訊，以符合您的需求。
   + 使用 **JSON 編輯器**新增或修改條件。

1. （選用） 若要將標籤連接至受管許可，請在**標籤**中輸入標籤索引鍵和值。選擇新增標籤來**新增其他標籤**。視需要重複此步驟。

1. 完成後，請選擇**建立客戶受管許可**。

------
#### [ AWS CLI ]

**建立客戶受管許可**
+ 執行命令 [create-permission](https://docs.aws.amazon.com/cli/latest/reference/ram/create-permission.html)，並指定名稱、客戶受管許可適用的資源類型，以及政策範本內文文字。

  下列範例命令會為 `imagebuilder:Component` 資源類型建立受管許可。

  ```
  $ aws ram create-permission \
      --name TestCMP \
      --resource-type imagebuilder:Component \
      --policy-template "{\"Effect\":\"Allow\",\"Action\":[\"imagebuilder:ListComponents\"]}"
  {
      "permission": {
          "arn": "arn:aws:ram:us-east-1:123456789012:permission/TestCMP",
          "version": "1",
          "defaultVersion": true,
          "isResourceTypeDefault": false,
          "name": "TestCMP",
          "resourceType": "imagebuilder:Component",
          "status": "ATTACHABLE",
          "creationTime": 1680033769.401,
          "lastUpdatedTime": 1680033769.401
      }
  }
  ```

------

## 建立新的客戶受管許可版本
<a name="update_mp"></a>

如果您的客戶受管許可的使用案例變更，您可以建立新的受管許可版本。這不會影響您現有的資源共享，只有未來使用此客戶受管許可的新資源共享。

每個受管許可最多可以有五個版本，但您只能關聯預設版本。

------
#### [ Console ]

**建立新的客戶受管許可版本**

1. 導覽至**[受管許可程式庫](https://console.aws.amazon.com/ram/home#Permissions:)**。

1. 依**客戶受管**篩選受管許可清單，或搜尋您要變更的客戶受管許可名稱。

1. 在受管許可詳細資訊頁面的**受管許可版本**區段下，選擇**建立版本**。

1. 對於**政策範本**，您可以使用視覺化編輯器或 JSON 編輯器新增或移除動作和條件。

   您也可以選擇**匯入受管許可**，以使用現有的政策範本。

1. 完成後，請選擇頁面底部的**建立版本**。

------
#### [ AWS CLI ]

**建立新的客戶受管許可版本**

1. 尋找您要為其建立新版本的受管許可的 Amazon Resource Name (ARN)。使用 `--permission-type CUSTOMER_MANAGED` 參數呼叫 [list-permissions](https://docs.aws.amazon.com/cli/latest/reference/ram/list-permissions.html) 以僅包含客戶受管許可。

   ```
   $ aws ram-cmp list-permissions --permission-type CUSTOMER_MANAGED
   {
       "permissions": [
           {
               "arn": "arn:aws:ram:us-east-1:123456789012:permission/TestCMP",
               "version": "2",
               "defaultVersion": true,
               "isResourceTypeDefault": false,
               "name": "TestCMP",
               "permissionType": "CUSTOMER_MANAGED",
               "resourceType": "imagebuilder:Component",
               "status": "ATTACHABLE",
               "creationTime": 1680035597.346,
               "lastUpdatedTime": 1680035597.346
           }
       ]
   }
   ```

1. 取得 ARN 之後，您可以呼叫 [create-permission-version](https://docs.aws.amazon.com/cli/latest/reference/ram/create-permission-version.html) 操作，並提供更新的政策範本。

   ```
   $ aws ram create-permission-version \
       --permission-arn arn:aws:ram:us-east-1:123456789012:permission/TestCMP \
       --policy-template {"Effect":"Allow","Action":["imagebuilder:ListComponents"]}
   {
       "permission": {
           "arn": "arn:aws:ram:us-east-1:123456789012:permission/TestCMP",
           "version": "2",
           "defaultVersion": true,
           "isResourceTypeDefault": false,
           "name": "TestCMP",
           "status": "ATTACHABLE",
           "resourceType": "imagebuilder:Component",
           "permission": "{\"Effect\":\"Allow\",\"Action\":[\"imagebuilder:ListComponents\"]}",
           "creationTime": 1680038973.79,
           "lastUpdatedTime": 1680038973.79
       }
   }
   ```

   輸出包含新版本的版本編號。

------

## 選擇要作為客戶受管許可預設值的不同版本
<a name="set_new_mp_default_version"></a>

您可以將另一個客戶受管許可版本設定為新的預設版本。

------
#### [ Console ]

**為客戶受管許可設定新的預設版本**

1. 導覽至**[受管許可程式庫](https://console.aws.amazon.com/ram/home#Permissions:)**。

1. 依**客戶受管**許可篩選受管許可清單，或搜尋您要變更的客戶受管許可名稱。

1. 

   在客戶受管許可詳細資訊頁面的**受管許可版本**區段下，使用下拉式清單選擇您要設定為新預設值的版本。

1. 選擇**設為預設版本**。

1. 出現對話方塊時，請確認您希望使用此客戶受管許可的所有新資源共用的預設值為此版本。若您同意，請選擇**設為預設版本**。

------
#### [ AWS CLI ]

**為客戶受管許可設定新的預設版本**

1. 呼叫 [list-permission-versions](https://docs.aws.amazon.com/cli/latest/reference/ram/list-permission-versions.html)，尋找您要設定為預設版本的版本編號。

   下列範例命令會擷取指定受管許可的目前版本。

   ```
   $ aws ram list-permission-versions \
       --permission-arn arn:aws:ram:us-east-1:123456789012:permission/TestCMP
   {
       "permissions": [
           {
               "arn": "arn:aws:ram:us-east-1:123456789012:permission/TestCMP",
               "version": "1",
               "defaultVersion": false,
               "isResourceTypeDefault": false,
               "name": "TestCMP",
               "permissionType": "CUSTOMER_MANAGED",
               "featureSet": "STANDARD",
               "resourceType": "imagebuilder:Component",
               "status": "UNATTACHABLE",
               "creationTime": 1680033769.401,
               "lastUpdatedTime": 1680035597.345
           },
           {
               "arn": "arn:aws:ram:us-east-1:123456789012:permission/TestCMP",
               "version": "2",
               "defaultVersion": true,
               "isResourceTypeDefault": false,
               "name": "TestCMP",
               "permissionType": "CUSTOMER_MANAGED",
               "featureSet": "STANDARD",
               "resourceType": "imagebuilder:Component",
               "status": "ATTACHABLE",
               "creationTime": 1680035597.346,
               "lastUpdatedTime": 1680035597.346
           }
       ]
   }
   ```

1. 將版本號碼設定為預設之後，您可以呼叫 [set-default-permission-version](https://docs.aws.amazon.com/cli/latest/reference/ram/set-default-permission-version.html) 操作。

   ```
   $ aws ram-cmp set-default-permission-version \
       --permission-arn arn:aws:ram:us-east-1:123456789012:permission/TestCMP \
       --version 2
   ```

   如果成功，此命令不會傳回任何輸出。您可以再次執行 [list-permission-versions](https://docs.aws.amazon.com/cli/latest/reference/ram/list-permission-versions.html)，並確認所選版本的 `defaultVersion` 欄位現在已設定為 `true`。

------

## 刪除客戶受管許可版本
<a name="delete_mp_version"></a>

每個客戶受管許可最多可以有五個版本。當不再需要且不在使用版本時，您可以將其刪除。您無法刪除客戶受管許可的預設版本。刪除的版本在主控台中保持可見長達兩個小時，狀態為刪除後才會完全移除。

------
#### [ Console ]

 **刪除客戶受管許可版本**

1. 導覽至**[受管許可程式庫](https://console.aws.amazon.com/ram/home#Permissions:)**。

1. 依**客戶受管**篩選受管許可清單，或使用您要刪除的版本搜尋客戶受管許可的名稱。

1. 請確定您要刪除的版本目前不是預設值。

1. 針對頁面的**版本**區段，選擇**關聯的資源共用**索引標籤，以查看是否有任何共用使用此版本。

   如果有任何關聯的共用，您必須先變更客戶受管許可版本，才能刪除此版本。

1. 選擇**版本區段右側的刪除****版本**。

1. 在確認對話方塊中，選取**刪除**以確認您想要刪除此版本的客戶受管許可。

   如果您不想刪除此版本的客戶受管許可，請選擇**取消**。

------
#### [ AWS CLI ]

**刪除客戶受管許可的一個版本**

1. 呼叫 [list-permission-versions](https://docs.aws.amazon.com/cli/latest/reference/ram/list-permission-versions.html) 操作以擷取可用的版本編號。

1. 取得版本編號後，請提供它做為 [delete-permission-version](https://docs.aws.amazon.com/cli/latest/reference/ram/delete-permission-version.html) 的參數。

   ```
   $ aws ram-cmp delete-permission-version \
       --permission-arn arn:aws:ram:us-east-1:123456789012:permission/TestCMP \
       --version 1
   ```

   如果成功，此命令不會傳回任何輸出。您可以再次執行 [list-permission-versions](https://docs.aws.amazon.com/cli/latest/reference/ram/list-permission-versions.html)，並確認版本不再包含在輸出中。

------

## 刪除客戶受管許可
<a name="delete_mp"></a>

如果不再需要客戶受管許可，且未使用，您可以將其刪除。您無法刪除與資源共享相關聯的客戶受管許可。刪除的客戶受管許可會在兩小時後消失。在此之前，它會在已刪除狀態的**受管許可程式庫**中保持可見。

------
#### [ Console ]

 **刪除客戶受管許可**

1. 導覽至**[受管許可程式庫](https://console.aws.amazon.com/ram/home#Permissions:)**。

1. 依**客戶受管**許可篩選受管許可清單，或搜尋您要刪除的客戶受管許可名稱。

1. 在選取客戶受管許可之前，請確認受管許可清單中有 0 個相關聯的共用。

   如果仍有資源共用與受管許可相關聯，您必須先將所有受管許可指派給所有資源共用，才能繼續。

1. 在客戶受管許可詳細資訊頁面的右上角，選擇**刪除受管許可**。

1. 當確認對話方塊出現時，選擇**刪除**以刪除受管許可。

------
#### [ AWS CLI ]

**刪除客戶受管許可**

1. 透過使用 `--permission-type CUSTOMER_MANAGED` 參數呼叫 [list-permissions](https://docs.aws.amazon.com/cli/latest/reference/ram/list-permissions.html) 來尋找您要刪除之受管許可的 ARN，以僅包含客戶受管許可。

   ```
   $ aws ram-cmp list-permissions --permission-type CUSTOMER_MANAGED
   {
       "permissions": [
           {
               "arn": "arn:aws:ram:us-east-1:123456789012:permission/TestCMP",
               "version": "2",
               "defaultVersion": true,
               "isResourceTypeDefault": false,
               "name": "TestCMP",
               "permissionType": "CUSTOMER_MANAGED",
               "resourceType": "imagebuilder:Component",
               "status": "ATTACHABLE",
               "creationTime": 1680035597.346,
               "lastUpdatedTime": 1680035597.346
           }
       ]
   }
   ```

1. 在您擁有要刪除之受管許可的 ARN 之後，請提供它做為[刪除許可](https://docs.aws.amazon.com/cli/latest/reference/ram/delete-permission.html)的參數。

   ```
   $ aws ram delete-permission \
       --permission-arn arn:aws:ram:us-east-1:123456789012:permission/TestCMP
   {
       "returnValue": true,
       "permissionStatus": "DELETING"
   }
   ```

------