如何命名使用 cloudformation 模板创建的自定义托管策略
How to name a custom managed policy created using cloudformation template
我可以使用以下模板成功创建自定义 IAM 策略(托管):
"IAMPolicy2": {
"Type": "AWS::IAM::ManagedPolicy",
"Properties": {
"PolicyDocument": {
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:Get*",
"s3:List*"
],
"Resource": [
{
"Fn::Join": [
"",
[
"arn:aws:s3:::",
{
"Ref": "S3Bucket"
}
]
]
},
{
"Fn::Join": [
"",
[
"arn:aws:s3:::",
{
"Ref": "S3Bucket"
},
"/*"
]
]
}
]
}
]
},
"Users": [
{
"Ref": "IAMUser2"
}
]
}
}
但是当我尝试在模板中添加“"PolicyName":"test2"”标签时,出现了这个错误:
Encountered unsupported property PolicyName
有没有办法为我的自定义托管策略设置任何名称?
目前无法在通过 CloudFormation 创建 IAM 托管策略时为其设置自定义名称。这同样适用于 IAM 角色。
名称模式将像这样生成:
StackName-ResourceName-RandomString
此外,您可以检查 IAM Managed Policy Guide 以了解可用属性。
要创建不附加堆栈名称和堆栈随机字符串的静态名称,请将其添加到您的属性中:
"ManagedPolicyName": "myManagedPolicyRocks"
您可以参考下面的 AWS 文档 - https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html
{
"Type" : "AWS::IAM::ManagedPolicy",
"Properties" : {
"Description" : String,
"Groups" : [ String, ... ],
"ManagedPolicyName" : String,
"Path" : String,
"PolicyDocument" : Json,
"Roles" : [ String, ... ],
"Users" : [ String, ... ]
}
}
根据配置框架,它不是“PolicyName”。对于托管策略,我们必须使用“ManagedPolicyName”insted。
AWS CloudFormation 有详细的文档记录,因此任何与语法相关的问题只能从官方文档中找出。
我可以使用以下模板成功创建自定义 IAM 策略(托管):
"IAMPolicy2": {
"Type": "AWS::IAM::ManagedPolicy",
"Properties": {
"PolicyDocument": {
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:Get*",
"s3:List*"
],
"Resource": [
{
"Fn::Join": [
"",
[
"arn:aws:s3:::",
{
"Ref": "S3Bucket"
}
]
]
},
{
"Fn::Join": [
"",
[
"arn:aws:s3:::",
{
"Ref": "S3Bucket"
},
"/*"
]
]
}
]
}
]
},
"Users": [
{
"Ref": "IAMUser2"
}
]
}
}
但是当我尝试在模板中添加“"PolicyName":"test2"”标签时,出现了这个错误:
Encountered unsupported property PolicyName
有没有办法为我的自定义托管策略设置任何名称?
目前无法在通过 CloudFormation 创建 IAM 托管策略时为其设置自定义名称。这同样适用于 IAM 角色。
名称模式将像这样生成:
StackName-ResourceName-RandomString
此外,您可以检查 IAM Managed Policy Guide 以了解可用属性。
要创建不附加堆栈名称和堆栈随机字符串的静态名称,请将其添加到您的属性中:
"ManagedPolicyName": "myManagedPolicyRocks"
您可以参考下面的 AWS 文档 - https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html
{
"Type" : "AWS::IAM::ManagedPolicy",
"Properties" : {
"Description" : String,
"Groups" : [ String, ... ],
"ManagedPolicyName" : String,
"Path" : String,
"PolicyDocument" : Json,
"Roles" : [ String, ... ],
"Users" : [ String, ... ]
}
}
根据配置框架,它不是“PolicyName”。对于托管策略,我们必须使用“ManagedPolicyName”insted。
AWS CloudFormation 有详细的文档记录,因此任何与语法相关的问题只能从官方文档中找出。