

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

# 授予 CloudFormation Hooks 的 IAM 許可
<a name="grant-iam-permissions-for-hooks"></a>

根據預設，您 中的新使用者 AWS 帳戶 沒有使用 AWS 管理主控台、 AWS Command Line Interface (AWS CLI) 或 AWS API 管理勾點的許可。若要授予使用者許可，IAM 管理員可以建立 IAM 政策。然後，管理員可以將 IAM 政策新增至角色，使用者便能擔任這些角色。

使用本主題中的政策範例來建立您自己的自訂 IAM 政策，以授予使用者使用 Hooks 的許可。

若要了解如何使用這些範例 JSON 政策文件建立 IAM 身分型政策，請參閱《[IAM 使用者指南》中的使用客戶受管政策定義自訂 IAM 許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)。 **

本主題涵蓋執行下列動作所需的許可：
+ **管理勾點** – 在帳戶中建立、修改和停用勾點。
+ **公開發佈勾點** – 註冊、測試和發佈您的自訂勾點，以便在 CloudFormation 登錄檔中公開提供。
+ **檢視調用結果** – 存取和查詢您帳戶中的 Hook 調用結果。
+ **檢視調用結果的詳細資訊** – 存取您帳戶中特定 Hook 調用結果的詳細資訊和修補指導。

建立 IAM 政策時，您可以在`cloudformation`服務*授權參考* 章節的動作、資源和條件索引鍵中找到與服務字首相關聯的所有[動作、資源和條件索引鍵 CloudFormation](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudformation.html)的文件。

**Topics**
+ [允許使用者管理勾點](#iam-permissions-to-manage-hooks)
+ [允許使用者公開發佈自訂勾點](#iam-permissions-for-public-hook-publishing)
+ [允許使用者檢視勾點調用結果](#iam-permissions-to-request-invocation-results)
+ [允許使用者檢視詳細的勾點調用結果](#get-detailed-hook-invocation-results)
+ [AWS KMS 加密靜態 CloudFormation Hooks 結果的金鑰政策和許可](hooks-kms-key-policy.md)

## 允許使用者管理勾點
<a name="iam-permissions-to-manage-hooks"></a>

如果您需要允許使用者管理延伸模組，包括勾點，而不能在 CloudFormation 登錄檔中公開這些延伸模組，您可以使用下列範例 IAM 政策。

**重要**  
`ActivateType` 和 `SetTypeConfiguration` API 呼叫一起運作，在您的 帳戶中建立勾點。當您授予使用者呼叫 `SetTypeConfiguration` API 的許可時，您會自動授予他們修改和停用現有勾點的能力。您無法使用資源層級許可來限制對此 API 呼叫的存取。因此，請確定您僅將此許可授予帳戶中的授權使用者。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "cloudformation:ActivateType",
                "cloudformation:DescribeType",
                "cloudformation:ListTypes",
                "cloudformation:SetTypeConfiguration"
            ],
            "Resource": "*"
        }
    ]
}
```

------

管理勾點的使用者可能需要一些相關的許可，例如：
+ 若要在 CloudFormation 主控台中從 Control Catalog 檢視主動控制，使用者必須擁有 IAM 政策中的 `controlcatalog:ListControls`許可。
+ 若要在 CloudFormation 登錄檔中將自訂勾點註冊為私有延伸，使用者必須在 IAM 政策中擁有 `cloudformation:RegisterType`許可。

## 允許使用者公開發佈自訂勾點
<a name="iam-permissions-for-public-hook-publishing"></a>

下列範例 IAM 政策特別著重於發佈功能。如果您需要允許使用者在 CloudFormation 登錄檔中公開使用延伸項目，包括勾點，請使用此政策。

**重要**  
發佈勾點可公開提供給其他 AWS 帳戶。確保只有授權使用者具有這些許可，且已發佈的延伸符合組織的品質和安全標準。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "cloudformation:DescribePublisher",
                "cloudformation:DescribeTypeRegistration",
                "cloudformation:ListTypes",
                "cloudformation:ListTypeVersions",
                "cloudformation:PublishType",
                "cloudformation:RegisterPublisher",
                "cloudformation:RegisterType",
                "cloudformation:TestType"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## 允許使用者檢視勾點調用結果
<a name="iam-permissions-to-request-invocation-results"></a>

檢視勾點調用結果所需的 IAM 許可會根據請求的資訊類型而變更。

### 列出勾點調用結果
<a name="list-hook-invocation-results"></a>

若要列出勾點調用結果，使用者需要不同的許可，具體取決於提出的 API 請求。
+ 若要授予請求所有勾點結果、特定勾點結果或特定勾點和調用狀態結果的許可，您必須授予 `cloudformation:ListAllHookResults` 動作的存取權。
+ 若要透過指定勾點目標授予請求結果的許可，您必須授予 `cloudformation:ListHookResults` 動作的存取權。此許可允許 API 呼叫者在呼叫 時指定 `TargetType`和 `TargetId` 參數`ListHookResults`。

以下顯示列出勾點調用結果的基本許可政策範例。具有此政策的 IAM 身分 （使用者或角色） 具有使用所有可用參數組合來請求所有調用結果的許可。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "cloudformation:ListAllHookResults",
                "cloudformation:ListHookResults"
            ],
            "Resource": "*"
        }
    ]
}
```

------

#### 控制可以指定哪些變更集
<a name="control-which-change-sets"></a>

下列範例 IAM 政策會指定 勾點的目標，授予 `cloudformation:ListHookResults` 動作請求結果的許可。不過，如果目標是名為 的變更集，也會拒絕該動作`example-changeset`。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "cloudformation:ListHookResults"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Deny",
            "Action": [
                "cloudformation:ListHookResults"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "cloudformation:ChangeSetName": "{{example-changeset}}"
                }
            }
        }
    ]
}
```

------

#### 控制可以指定哪些勾點
<a name="control-which-hooks"></a>

下列範例 IAM 政策授予 `cloudformation:ListAllHookResults` 動作的許可，僅在請求中提供 Hook 的 ARN 時請求調用結果。它會拒絕指定 Hook ARN 的動作。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "cloudformation:ListAllHookResults"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Deny",
            "Action": [
                "cloudformation:ListAllHookResults"
            ],
            "Resource": "*",
            "Condition": {
                "Null": {
                    "cloudformation:TypeArn": "true"
                }
            }
        },
        {
            "Effect": "Deny",
            "Action": [
                "cloudformation:ListAllHookResults"
            ],
            "Resource": "*",
            "Condition": {
                "ArnEquals": {
                    "cloudformation:TypeArn": "arn:aws:cloudformation:{{us-east-1}}:{{123456789012}}:type/hook/{{MyCompany-MyHook}}"
                }
            }
        }
    ]
}
```

------

## 允許使用者檢視詳細的勾點調用結果
<a name="get-detailed-hook-invocation-results"></a>

若要授予許可來檢視特定 Hook 調用的詳細結果，您必須授予 `cloudformation:GetHookResult` 動作的存取權。此許可允許使用者擷取特定 Hook 調用結果的詳細資訊和修補指導。如需詳細資訊，請參閱《 *AWS CloudFormation API 參考*》中的 [GetHookResult](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_GetHookResult.html)。

下列範例 IAM 政策授予 `cloudformation:GetHookResult`動作的許可。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
       "Action": [
         "cloudformation:GetHookResult"
      ],
      "Resource": "*"
    }
  ]
}
```

------

**注意**  
您可以設定勾點，使用您自己的 AWS KMS 金鑰加密存放在雲端中的詳細調用結果。如需有關如何在使用客戶受管金鑰進行加密時設定金鑰政策和所需的 IAM 許可的資訊，請參閱 [AWS KMS 加密靜態 CloudFormation Hooks 結果的金鑰政策和許可](hooks-kms-key-policy.md)。