Amazon web services 将策略附加到IAM角色
以下cloudformation模板在第9行出现错误:Amazon web services 将策略附加到IAM角色,amazon-web-services,amazon-sqs,amazon-cloudformation,amazon-iam,Amazon Web Services,Amazon Sqs,Amazon Cloudformation,Amazon Iam,以下cloudformation模板在第9行出现错误: { "AWSTemplateFormatVersion" : "2010-09-09", "Description" : "Policy to allow send receive message from SQS Queue", "Resources" : { "MyPolicy" : { "Type" : "AWS::IAM::Policy", "Properties" : { "PolicyName" :
{
"AWSTemplateFormatVersion" : "2010-09-09",
"Description" : "Policy to allow send receive message from SQS Queue",
"Resources" : {
"MyPolicy" : {
"Type" : "AWS::IAM::Policy",
"Properties" : {
"PolicyName" : "CFUsers",
"Roles": [ { "arn:aws:iam::710161973367:role/Cognito_CFIAuth_Role" } ],
"PolicyDocument" : {
"Version" : "2012-10-17",
"Statement": [
{
"Sid": "Sid1482400105445",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::710161973367:role/Cognito_CFIAuth_Role"
},
"Action": [
"SQS:SendMessage",
"SQS:ReceiveMessage",
"SQS:DeleteMessage",
"SQS:GetQueueUrl"
],
"Resource": "arn:aws:sqs:ap-south-1:710161973367:CFI-Trace"
}
]
}
}
}
}
我希望角色Cognito\u CFIAuth\u角色在SQS队列CFI跟踪上具有消息发送/读取/删除前置项。如何将SQS操作权限附加到IAM角色 使用“AWS::IAM::Policy”资源,您正在创建一个内联策略。说明这将获取“AWS::IAM::Roles的名称”列表,我将其视为同一堆栈中定义的角色资源的逻辑名称
如果要将策略附加到先前存在的角色,则应改用ManagedPolicy类型。采用先前存在的角色的名称 使用“AWS::IAM::Policy”资源,您正在创建一个内联策略。说明这将获取“AWS::IAM::Roles的名称”列表,我将其视为同一堆栈中定义的角色资源的逻辑名称
如果要将策略附加到先前存在的角色,则应改用ManagedPolicy类型。采用先前存在的角色的名称 Cloudformation类型IAM::策略适用于用户和组。角色和实例配置文件适用于ec2。你把这两个想法混为一谈了。如果您在不同的CFN中预定义了角色,那么您只需要为EC2实例使用一个实例概要文件,如果没有,您也可以创建它,然后引用它
"RootInstanceProfile": {
"Type": "AWS::IAM::InstanceProfile",
"Properties": {
"Path": "/",
"Roles": [ {
"arn:aws:iam::710161973367:role/Cognito_CFIAuth_Role"
} ]
}
}
或
IAM政策
IAM角色
现在还有SQS政策
云信息类型IAM::策略适用于用户和组。角色和实例配置文件适用于ec2。你把这两个想法混为一谈了。如果您在不同的CFN中预定义了角色,那么您只需要为EC2实例使用一个实例概要文件,如果没有,您也可以创建它,然后引用它
"RootInstanceProfile": {
"Type": "AWS::IAM::InstanceProfile",
"Properties": {
"Path": "/",
"Roles": [ {
"arn:aws:iam::710161973367:role/Cognito_CFIAuth_Role"
} ]
}
}
或
IAM政策
IAM角色
现在还有SQS政策
首先,第9行包含JSON语法错误,应删除角色字符串周围的括号
{}
:
"Roles": [ "arn:aws:iam::710161973367:role/Cognito_CFIAuth_Role" ],
其次,“s”属性接受“要附加到此策略的AWS::IAM::Role
s的名称”,而不是完整的ARN,因此您的行应该是:
"Roles": [ "Cognito_CFIAuth_Role" ],
您还需要在示例末尾缺少一个结束括号。首先,第9行包含JSON语法错误,应删除角色字符串周围的括号
{}
:
"Roles": [ "arn:aws:iam::710161973367:role/Cognito_CFIAuth_Role" ],
其次,“s”属性接受“要附加到此策略的AWS::IAM::Role
s的名称”,而不是完整的ARN,因此您的行应该是:
"Roles": [ "Cognito_CFIAuth_Role" ],
您还需要在示例的结尾处缺少一个结束括号。严格地从语法角度来看,
[{“arn:aws:iam::710161973367:role/Cognito\u CFIAuth\u role”}],
确实是错误的,因为它是一个包含有键但没有值的对象的数组。{
和}
是不正确的。严格地说,从语法角度来看,[{“arn:aws:iam::710161973367:role/Cognito\u CFIAuth\u role”}],
确实是错误的,因为它是一个数组,包含一个带键但没有值的对象。{
和}
不正确。此外,它必须是有效的JSON。请参阅@michael对您的问题的评论。此外,它必须是有效的JSON。请参阅@michael对您的问题的评论。