AWS::IAM::Policy - AWS CloudFormation

AWS::IAM::Policy

指定の IAM ユーザー、グループ、またはロールに埋め込まれたインラインポリシードキュメントを追加または更新します。

IAM ユーザーに管理ポリシーをアタッチすることもできます。ポリシーについては、IAM ユーザーガイドの「管理ポリシーとインラインポリシー」を参照してください。

[グループ]、[ロール]、および [ユーザー] プロパティはオプションです。ただし、これらのプロパティのうち、少なくとも 1 つを指定する必要があります。

アイデンティティに埋め込むことができるインラインポリシー数の制限については、IAM ユーザーガイドの「IAM エンティティに関する制限事項」を参照してください。

構文

AWS CloudFormation テンプレートでこのエンティティを宣言するには、次の構文を使用します。

JSON

{ "Type" : "AWS::IAM::Policy", "Properties" : { "Groups" : [ String, ... ], "PolicyDocument" : Json, "PolicyName" : String, "Roles" : [ String, ... ], "Users" : [ String, ... ] } }

YAML

Type: AWS::IAM::Policy Properties: Groups: - String PolicyDocument: Json PolicyName: String Roles: - String Users: - String

プロパティ

Groups

ポリシーを関連付けるグループの名前。

このパラメータは、(正規表現パターンを通して) スペースを含まない大文字と小文字の英数字からなる文字列を使用できます。以下の _+=,.@- の文字を含めることもできます。

必須: いいえ

タイプ: 文字列のリスト

最小: 1

最大: 128

パターン: [\w+=,.@-]+

Update requires: No interruption

PolicyDocument

ポリシードキュメント。

IAM では、JSON 形式でポリシーを指定する必要があります。ただし、YAML 形式でフォーマットされた AWS CloudFormation テンプレートの場合は、JSON または YAML 形式でポリシーを指定できます。AWS CloudFormation は、IAM に送信する前に常に YAML ポリシーを JSON 形式に変換します。

このパラメータを検証するために使用される正規表現パターンは、以下で構成される文字列です。

  • スペース (\u0020) から ASCII 文字範囲の末尾までの印刷可能な ASCII 文字

  • 基本ラテン文字およびラテン 1 補助文字一式 (\u00FF まで) の印刷可能な文字

  • 特殊文字タブ (\u0009)、ラインフィード (\u000A)、およびキャリッジリターン (\u000D)

必須: はい

タイプ: Json

最小: 1

最大: 131072

パターン: [\u0009\u000A\u000D\u0020-\u00FF]+

Update requires: No interruption

PolicyName

ポリシードキュメントの名前。

このパラメータは、(正規表現パターンを通して) スペースを含まない大文字と小文字の英数字からなる文字列を使用できます。以下の _+=,.@- の文字を含めることもできます。

必須: はい

タイプ: 文字列

最小: 1

最大: 128

パターン: [\w+=,.@-]+

Update requires: No interruption

Roles

ポリシーを関連付けるロールの名前。

このパラメータは、(正規表現パターンに従い) スペースを含まない大文字と小文字の英数字からなる文字列を使用できます。以下の _+=,.@- の文字を含めることもできます。

注記

外部ポリシー (AWS::IAM::PolicyAWS::IAM::ManagedPolicy など) に Ref を持つロールがあり、またリソース (AWS::ECS::Service など) にも同じロールに Ref がある場合には、DependsOn 属性をリソースに追加することによってこのリソースが外部ポリシーに依存します。この依存性により、ロールのポリシーがリソースのライフサイクルを通じて利用できるようになります。たとえば、AWS::ECS::Service リソースを持つスタックを削除するときに、DependsOn 属性により、AWS CloudFormation はロールのポリシーを削除する前に必ず AWS::ECS::Service リソースを削除します。

必須: いいえ

タイプ: 文字列のリスト

Update requires: No interruption

Users

ポリシーを関連付けるユーザーの名前。

このパラメータは、(正規表現パターンを通して) スペースを含まない大文字と小文字の英数字からなる文字列を使用できます。以下の _+=,.@- の文字を含めることもできます。

必須: いいえ

タイプ: 文字列のリスト

最小: 1

最大: 128

パターン: [\w+=,.@-]+

Update requires: No interruption

戻り値

参照番号

When the logical ID of this resource is provided to the Ref intrinsic function, Ref returns the resource name.

For more information about using the Ref function, see Ref.

ポリシーグループを持つ IAM ポリシー

JSON

{ "Type": "AWS::IAM::Policy", "Properties": { "PolicyName": "CFNUsers", "PolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:Describe*", "cloudformation:List*", "cloudformation:Get*" ], "Resource": "*" } ] }, "Groups": [ { "Ref": "CFNUserGroup" } ] } }

YAML

Type: 'AWS::IAM::Policy' Properties: PolicyName: CFNUsers PolicyDocument: Version: 2012-10-17 Statement: - Effect: Allow Action: - 'cloudformation:Describe*' - 'cloudformation:List*' - 'cloudformation:Get*' Resource: '*' Groups: - !Ref CFNUserGroup

指定されたロールを持つ IAM ポリシー

JSON

{ "Type": "AWS::IAM::Policy", "Properties": { "PolicyName": "root", "PolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "*", "Resource": "*" } ] }, "Roles": [ { "Ref": "RootRole" } ] } }

YAML

Type: 'AWS::IAM::Policy' Properties: PolicyName: root PolicyDocument: Version: 2012-10-17 Statement: - Effect: Allow Action: '*' Resource: '*' Roles: - !Ref RootRole

以下の資料も参照してください。

  • AWS Identity and Access Management API リファレンスの「CreatePolicy