gpt4 book ai didi

amazon-web-services - 使用 cloudformation 创建 aws IAM 角色不会创建 RolePolicies

转载 作者:行者123 更新时间:2023-12-03 07:25:48 25 4
gpt4 key购买 nike

我正在创建一个 ec2 实例,其角色提供对 kinesis 流和 Dynamodb 偏移表的访问。我正在使用aws cloudformation为此。

我在创建 Streaming Access IAM Role 时遇到的问题本身。

所以,我将具有以下结构,

                        has
StreamingAccessRole ----------> RolePolicy1(kinesis:*), RolePolicy2(dynamodb:*)

使用两个策略创建 AWS IAM 角色的模板,一个用于 kinesis,另一个用于 dynamodb:

{
"AWSTemplateFormatVersion": "2010-09-09",
"Parameters": {
"teamIdentifier": {
"Type": "String",
"Default": "a28",
"Description": "Identifier for the team"
}
},
"Resources": {
"StreamingAccessRole": {
"Type": "AWS::IAM::Role",
"Properties": {
"AssumeRolePolicyDocument": {
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": [
"ec2.amazonaws.com"
]
},
"Action": [
"sts:AssumeRole"
]
}
]
},
"Path": "/a28/",
"Policies": [
{
"PolicyName": "Stream-ConsumerOffset-RW-AccessPolicy",
"PolicyDocument": {
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "kinesis:*",
"Resource": "arn:aws:kinesis:us-west-2:*:stream/a28-*"
},
{
"Effect": "Allow",
"Action": "dynamodb:*",
"Resource": "arn:aws:dynamodb:us-west-2:*:table/a28-*"
}
]
}
}
]
}
}
}
}

它创建访问角色,但没有角色策略。

$ aws iam get-role --role-name a28-streaming-access-role-st-StreamingAccessRole-14QHMTIOIRN5X --region us-west-2 --profile aws-federated
{
"Role": {
"AssumeRolePolicyDocument": {
"Version": "2012-10-17",
"Statement": [
{
"Action": "sts:AssumeRole",
"Effect": "Allow",
"Principal": {
"Service": "ec2.amazonaws.com"
}
}
]
},
"RoleId": "AROAIFD6X2CJXTKLVQNLE",
"CreateDate": "2017-04-07T18:54:59Z",
"RoleName": "a28-streaming-access-role-st-StreamingAccessRole-14QHMTIOIRN5X",
"Path": "/a28/",
"Arn": "arn:aws:iam::500238854089:role/a28/a28-streaming-access-role-st-StreamingAccessRole-14QHMTIOIRN5X"
}
}

列出角色策略

$ aws iam list-role-policies --role-name a28-streaming-access-role-st-StreamingAccessRole-14QHMTIOIRN5X --region us-west-2 --profile aws-federated
{
"PolicyNames": []
}

这意味着它甚至没有创建任何策略,

aws iam list-policies --region us-west-2 --profile aws-federated | grep Stream-ConsumerOffset-RW-AccessPolicy

但是如果我在上面的示例中仅提供kinesis:*语句,它会创建一个策略,但不能单独使用dynamodb:*

no policies created所以,我的问题是如何使用一个 cloudformation AWS::IAM::Role 模板提供多个 RolePolicies,或者这是 dynamodb 特有的?

最佳答案

当您在角色中创建策略时,会出现间歇性竞争条件。使用 AWS::IAM::Policy 单独创建策略并将 Roles 属性设置为 Role。问题就会消失。

关于amazon-web-services - 使用 cloudformation 创建 aws IAM 角色不会创建 RolePolicies,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43300573/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com