

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# CloudFormation フックの IAM アクセス許可を付与する
<a name="grant-iam-permissions-for-hooks"></a>

デフォルトでは、 の新しいユーザーには、、 AWS Command Line Interface (AWS CLI) AWS マネジメントコンソール、または AWS API を使用してフックを管理するアクセス許可 AWS アカウント がありません。ユーザーに アクセス許可を付与するために、IAM 管理者は IAM ポリシーを作成できます。その後、管理者はロールに IAM ポリシーを追加し、ユーザーはロール引き継ぐことができます。

このトピックのポリシー例を使用して、フックを操作するアクセス許可をユーザーに付与する独自のカスタム IAM ポリシーを作成します。

これらのサンプル JSON ポリシードキュメントを使用して IAM アイデンティティベースのポリシーを作成する方法については、IAM *ユーザーガイドの*[「カスタマー管理ポリシーを使用してカスタム IAM アクセス許可を定義する](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)」を参照してください。

このトピックでは、以下を実行するために必要なアクセス許可について説明します。
+ **フックの管理** – アカウントでフックを作成、変更、無効にします。
+ **フックを公開** — カスタムフックを登録、テスト、公開して、CloudFormation レジストリで公開できるようにします。
+ **呼び出し結果の表示** – アカウント内のフック呼び出しの結果にアクセスしてクエリを実行します。
+ **呼び出し結果の詳細を表示する** – アカウント内の特定のフック呼び出し結果の詳細情報と修復ガイダンスにアクセスします。

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-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": "*"
        }
    ]
}
```

------

Hooks を管理するユーザーには、次のような関連するアクセス許可が必要になる場合があります。
+ 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`アクションへのアクセスを許可する必要があります。
+ Hook ターゲットを指定して結果をリクエストするアクセス許可を付与するには、 `cloudformation:ListHookResults`アクションへのアクセス権を付与する必要があります。このアクセス許可により、API 呼び出し元は を呼び出すときに `TargetType`および `TargetId`パラメータを指定できます`ListHookResults`。

以下は、フック呼び出し結果を一覧表示するための基本的なアクセス許可ポリシーの例です。このポリシーを持つ IAM ID (ユーザーまたはロール) には、使用可能なすべてのパラメータの組み合わせを使用してすべての呼び出し結果をリクエストするアクセス許可があります。

------
#### [ 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 ポリシーの例では、フックの ARN がリクエストで指定されている場合にのみ、呼び出し結果をリクエストするアクセス許可を `cloudformation:ListAllHookResults`アクションに付与します。指定されたフック 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>

特定のフック呼び出しの詳細な結果を表示するアクセス許可を付与するには、 `cloudformation:GetHookResult`アクションへのアクセス権を付与する必要があります。このアクセス許可により、ユーザーは特定のフック呼び出し結果の詳細情報と修復ガイダンスを取得できます。詳細については、 *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-kms-key-policy.md)。