有没有人知道如何使用云形成创建策略,然后有另一个云形成模板将该策略分配给角色?
我正在查看http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html并且我没有回答我的问题。
答案 0 :(得分:0)
策略和角色之间的链接在AWS::IAM::Policy
资源中声明。因此,例如,您可以使用一个堆栈export角色,另一个堆栈使用内部函数Fn::ImportValue导入它,并将其链接到策略资源。
导出堆栈:
Resources:
myRole:
Type: "AWS::IAM::Role"
Properties:
...
Outputs:
exportedRole:
Value: !Ref myRole
Export:
Name: "myExportedRole"
导入堆栈:
Resources:
myPolicy:
Type: "AWS::IAM::Policy"
Properties:
Roles:
- !ImportValue myExportedRole
...
答案 1 :(得分:0)
您可以同时创建角色和策略。这是一个示例:
"LambdaFunctionRole": {
"Type": "AWS::IAM::Role",
"Properties": {
"AssumeRolePolicyDocument": {
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": [
"lambda.amazonaws.com"
]
},
"Action": [
"sts:AssumeRole"
]
}
]
},
"Path": "/",
"Policies": [
{
"PolicyName": "AlexaSkillCloudWatchLogsAccess",
"PolicyDocument": {
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowLogging",
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": [
"*"
]
}
]
}
}
]
}
}
此资源为Lambda函数创建一个包含策略的策略。然后,您可以将角色的ARN与“ Fn :: GetAtt”包含在同一模板的lambda函数中