メニュー
AWS CloudFormation
ユーザーガイド (API Version 2010-05-15)

AWS::IAM::ManagedPolicy

AWS::IAM::ManagedPolicy は、IAM のユーザー、グループ、ロールに権限を適用するために使用できる AWS アカウントの AWS Identity and Access Management (IAM) 管理ポリシーを作成します。管理ポリシーの詳細については、IAM ユーザーガイドの「管理ポリシーとインラインポリシー」を参照してください。

構文

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

JSON

Copy
{ "Type": "AWS::IAM::ManagedPolicy", "Properties": { "Description" : String, "Groups" : [ String, ... ], "Path" : String, "PolicyDocument" : JSON object, "Roles" : [ String, ... ], "Users" : [ String, ... ], "ManagedPolicyName" : String } }

YAML

Copy
Type: "AWS::IAM::ManagedPolicy" Properties: Description: String Groups: - 文字列 Path: String PolicyDocument: JSON object Roles: - 文字列 Users: - 文字列 ManagedPolicyName: String

プロパティ

Description

IAM ポリシーの説明。たとえば、ポリシーで定義されている権限を記述します。

Required: No

Type: String

更新に伴う要件: 置換

Groups

このポリシーにアタッチする IAM グループの名前。

Required: No

Type: List of String values

更新に伴う要件: 中断はありません。

Path

IAM ポリシーのパス。デフォルトでは、パスは / になります。詳細については、『IAM ユーザーガイド』の「IAM ID」を参照してください。

Required: No

Type: String

更新に伴う要件: 置換

PolicyDocument

この管理ポリシーの権限を定義するポリシー。ポリシーの構文の詳細については、IAM ユーザーガイドの「IAM ポリシーエレメントの参照」を参照してください。

Required: Yes

Type: JSON object

注記

AWS Identity and Access Management (IAM) では、ポリシーが JSON 形式である必要があります。ただし、YAML 形式のテンプレートでは、JSON または YAML 形式で IAM ポリシーを作成できます。AWS CloudFormation は、IAM に送信する前に常にポリシーを JSON 形式に変換します。

更新に伴う要件: 中断はありません。

Roles

このポリシーにアタッチする IAM ロールの名前。

注記

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

Required: No

Type: List of String values

更新に伴う要件: 中断はありません。

Users

このポリシーにアタッチするユーザーの名前。

Required: No

Type: List of String values

更新に伴う要件: 中断はありません。

ManagedPolicyName

IAM 管理ポリシーのカスタム、フレンドリ名。有効な値については、『IAM API リファレンス』の「CreatePolicy」アクションの PolicyName パラメータを参照してください。

PolicyName を指定しない場合、AWS CloudFormation は一意の物理 ID を生成し、その ID をポリシー名として使用します。詳細については、「Name タイプ」を参照してください。

重要

名前を指定すると、このリソースの置換が必要な更新はできません。中断が不要であるか、一定の中断が必要な更新であれば、行うことができます。リソースを置き換える必要がある場合は、新しい名前を指定します。

Required: No

Type: String

更新に伴う要件: 置換

戻り値

参照番号

このリソースの論理 ID が Ref 組み込み関数に提供されると、Ref により ARN が返されます。

次のサンプルでは、Ref 関数が CreateTestDBPolicy 管理ポリシーの ARN (arn:aws:iam::123456789012:policy/teststack-CreateTestDBPolicy-16M23YE3CS700 など) を返します。

Copy
{ "Ref": "CreateTestDBPolicy" }

Ref 関数の使用方法の詳細については、「Ref」を参照してください。

次の例では、管理ポリシーを作成して TestDBGroup グループに関連付けています。管理ポリシーは、t2.micro データベースインスタンスを作成する権限をユーザーに与えます。データベースはMySQL データベースエンジンを使用する必要があり、インスタンス名にはプレフィックス test を含める必要があります。

JSON

Copy
"CreateTestDBPolicy" : { "Type" : "AWS::IAM::ManagedPolicy", "Properties" : { "Description" : "Policy for creating a test database", "Path" : "/", "PolicyDocument" : { "Version":"2012-10-17", "Statement" : [{ "Effect" : "Allow", "Action" : "rds:CreateDBInstance", "Resource" : {"Fn::Join" : [ "", [ "arn:aws:rds:", { "Ref" : "AWS::Region" }, ":", { "Ref" : "AWS::AccountId" }, ":db:test*" ] ]}, "Condition" : { "StringEquals" : { "rds:DatabaseEngine" : "mysql" } } }, { "Effect" : "Allow", "Action" : "rds:CreateDBInstance", "Resource" : {"Fn::Join" : [ "", [ "arn:aws:rds:", { "Ref" : "AWS::Region" }, ":", { "Ref" : "AWS::Region" }, ":db:test*" ] ]}, "Condition" : { "StringEquals" : { "rds:DatabaseClass" : "db.t2.micro" } } }] }, "Groups" : ["TestDBGroup"] } }

YAML

Copy
CreateTestDBPolicy: Type: "AWS::IAM::ManagedPolicy" Properties: Description: "Policy for creating a test database" Path: "/" PolicyDocument: Version: "2012-10-17" Statement: - Effect: "Allow" Action: "rds:CreateDBInstance" Resource: Fn::Join: - "" - - "arn:aws:rds:" - Ref: "AWS::Region" - ":" - Ref: "AWS::AccountId" - ":db:test*" Condition: StringEquals: rds:DatabaseEngine: "mysql" - Effect: "Allow" Action: "rds:CreateDBInstance" Resource: Fn::Join: - "" - - "arn:aws:rds:" - Ref: "AWS::Region" - ":" - Ref: "AWS::Region" - ":db:test*" Condition: StringEquals: rds:DatabaseClass: "db.t2.micro" Groups: - "TestDBGroup"

このページの内容: