AWS::IAM::Policy
AWS::IAM::Policy
リソースは、IAM ポリシーを IAM ユーザー、ロール、グループに関連付けます。IAM ポリシーの詳細については、IAM ユーザーガイド ガイドの「IAM ポリシーの概要」を参照してください。
構文
AWS CloudFormation テンプレートでこのエンティティを宣言するには、次の構文を使用します。
JSON
{ "Type" : "AWS::IAM::Policy", "Properties" : { "Groups" : [
String, ...
], "PolicyDocument" :JSON object
, "PolicyName" :String
, "Roles" : [String, ...
], "Users" : [String, ...
] } }
YAML
Type: AWS::IAM::Policy Properties: Groups: -
文字列
PolicyDocument:JSON object
PolicyName:String
Roles: -文字列
Users: -文字列
プロパティ
Groups
-
ポリシーを追加するグループの名前。
Required: Conditional.
Groups
、Roles
、およびUsers
のプロパティのうち、少なくとも 1 つは指定が必要です。Type: List of String values
更新に伴う要件: 中断はありません。
PolicyDocument
-
指定したユーザーまたはグループに追加するためのアクセス許可が含まれるポリシードキュメント。
Required: Yes
Type: JSON object
注記
AWS Identity and Access Management (IAM) では、ポリシーが JSON 形式である必要があります。ただし、YAML 形式のテンプレートでは、JSON または YAML 形式で IAM ポリシーを作成できます。AWS CloudFormation は、IAM に送信する前に常にポリシーを JSON 形式に変換します。
更新に伴う要件: 中断はありません。
PolicyName
-
ポリシーの名前。エンティティに対して複数のポリシーを指定する場合は、一意の名前を指定します。たとえば、IAM ロールのポリシーのリストを指定した場合は、各ポリシーに一意の名前が必要です。
Required: Yes
Type: String
更新に伴う要件: 中断はありません。
Roles
-
このポリシーがアタッチされる AWS::IAM::Role の名前。
注記
ポリシーに
Ref
のロールがあり、リソース (AWS::ECS::Service
など) にも同じロールにRef
がある場合には、このリソースがポリシーに依存するようにリソースにDependsOn
の属性を追加します。この依存性により、ロールのポリシーがリソースのライフサイクルを通じて利用できるようになります。たとえば、AWS::ECS::Service
のリソースを持つスタックを削除する場合に、DependsOn
の属性により、AWS::ECS::Service
のリソースが完了した後にロールのポリシーが削除されます。Required: Conditional.
Groups
、Roles
、およびUsers
のプロパティのうち、少なくとも 1 つは指定が必要です。Type: List of String values
更新に伴う要件: 中断はありません。
Users
-
ポリシーを追加するユーザーの名前。
Required: Conditional.
Groups
、Roles
、およびUsers
のプロパティのうち、少なくとも 1 つは指定が必要です。Type: List of String values
更新に伴う要件: 中断はありません。
戻り値
参照番号
このリソースの論理 ID が Ref
組み込み関数に提供されると、Ref
によりリソース名が返されます。
Ref
関数の使用方法の詳細については、「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"