CloudFormation フックの IAM アクセス許可を付与する - AWS CloudFormation

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

CloudFormation フックの IAM アクセス許可を付与する

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

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

これらのサンプル JSON ポリシードキュメントを使用して IAM アイデンティティベースのポリシーを作成する方法については、IAM ユーザーガイドの「カスタマー管理ポリシーを使用してカスタム IAM アクセス許可を定義する」を参照してください。

このトピックでは、以下を実行するために必要なアクセス許可について説明します。

  • フックの管理 – アカウントでフックを作成、変更、無効にします。

  • フックを公開 — カスタムフックを登録、テスト、公開して、CloudFormation レジストリで公開できるようにします。

  • 呼び出し結果の表示 – アカウント内のフック呼び出しの結果にアクセスしてクエリを実行します。

IAM ポリシーを作成する際、cloudformationサービスプレフィックスに関連付けられたすべてのアクション、リソース、および条件キーのドキュメントは、「サービス認可リファレンス」の「アクション、リソース、および条件キー AWS CloudFormation」セクションにあります。

フックの管理をユーザーに許可する

CloudFormation レジストリで公開することなく、フックを含む拡張機能の管理をユーザーに許可する必要がある場合は、次の IAM ポリシーの例を使用できます。

重要

ActivateTypeSetTypeConfiguration API コールは連携して、アカウントにフックを作成します。SetTypeConfiguration API を呼び出すアクセス許可をユーザーに付与すると、既存のフックを変更および無効化する機能が自動的に付与されます。リソースレベルのアクセス許可を使用して、この API コールへのアクセスを制限することはできません。したがって、このアクセス許可は、アカウントの承認されたユーザーのみに付与してください。

{ "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許可が必要です。

ユーザーにカスタムフックの公開を許可する

次の IAM ポリシーの例では、特にパブリッシュ機能に焦点を当てています。CloudFormation レジストリでフックなどの拡張機能を公開することをユーザーに許可する必要がある場合は、このポリシーを使用します。

重要

フックを公開すると、他の が公開できるようになります AWS アカウント。承認されたユーザーのみがこれらのアクセス許可を持ち、公開された拡張機能が組織の品質およびセキュリティ基準を満たしていることを確認します。

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

呼び出し結果をリクエストすることをユーザーに許可する

フック呼び出し結果の表示に必要な IAM アクセス許可は、実行される API リクエストによって異なります。

  • すべてのフック結果、特定のフックの結果、または特定のフックと呼び出しステータスの結果をリクエストするアクセス許可を付与するには、 cloudformation:ListAllHookResultsアクションへのアクセスを許可する必要があります。

  • Hook ターゲットを指定して結果をリクエストするアクセス許可を付与するには、 cloudformation:ListHookResultsアクションへのアクセス権を付与する必要があります。このアクセス許可により、API 発信者は を呼び出すときに TargetTypeおよび TargetIdパラメータを指定できますListHookResults

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

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

指定できる変更セットを制御する

次の IAM ポリシーの例では、フックのターゲットを指定して結果をリクエストするアクセス許可を cloudformation:ListHookResults アクションに付与します。ただし、ターゲットが という名前の変更セットである場合、 アクションも拒否されますexample-changeset

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

指定できるフックを制御する

次の IAM ポリシーの例では、フックの ARN がリクエストで指定されている場合にのみ、呼び出し結果をリクエストするアクセス許可を cloudformation:ListAllHookResultsアクションに付与します。指定されたフック ARN の アクションを拒否します。

{ "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" } } } ] }