AWS CloudFormation
User Guide (API Version 2010-05-15)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

AWS::IAM::ManagedPolicy

AWS::IAM::ManagedPolicy 为您的 AWS 账户创建 AWS Identity and Access Management (IAM) 托管策略,该策略可用于对 IAM 用户、组和角色应用权限。有关托管策略的更多信息,请参阅IAM 用户指南 指南中的托管策略与内联策略

语法

要在 AWS CloudFormation 模板中声明此实体,请使用以下语法:

JSON

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

YAML

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 标识符

Required: No

Type: String

更新要求替换

PolicyDocument

用于定义此托管策略的权限的策略。有关策略语法的更多信息,请参阅 IAM 用户指南 中的 IAM 策略元素参考

Required: Yes

Type: JSON object

注意

AWS Identity and Access Management (IAM) 要求策略为 JSON 格式。但对于 YAML 格式的模板,IAM 策略可为 JSON 或 YAML 格式。AWS CloudFormation 会始终将策略转换为 JSON 格式再提交给 IAM。

更新要求无需中断

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 用作策略名称。有关更多信息,请参阅 名称类型

重要

如果指定一个名称,您将无法执行需要替换此资源的更新。您可以执行不需要或者只需要部分中断的更新。如果必须替换资源,请指定新名称。

Required: No

Type: String

更新要求替换

返回值

Ref

当此资源的逻辑 ID 提供给 Ref 内部函数时,Ref 会返回 ARN。

在以下示例中,Ref 函数将返回 CreateTestDBPolicy 托管策略的 ARN,如 arn:aws:iam::123456789012:policy/teststack-CreateTestDBPolicy-16M23YE3CS700

{ "Ref": "CreateTestDBPolicy" }

有关使用 Ref 功能的更多信息,请参阅参考

示例

下面的示例创建一个托管策略并将其与 TestDBGroup 组关联。托管策略为用户授予创建 t2.micro 数据库实例的权限。数据库必须使用 MySQL 数据库引擎,且实例名称必须包含前缀 test

JSON

"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

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"

本页内容: