- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用 AWS,我正在构建一个 cloud formation堆栈定义如下:
MyPolicy
的策略,允许使用这些资源(为了简单起见,下面不再转录)MyRole
的角色堆栈将由管理员创建;创建后,目标是允许(从堆栈外部)一些用户承担 MyRole
以便使用多个资源。
我的问题:应该如何定义角色以便用户可以担任(特定用户将被允许从堆栈外部)?
在AWS帮助页面中,他们给出了example其中 "Service": [ "ec2.amazonaws.com"]
,表示允许 ec2
实例承担角色...但我不明白它如何转化为用户,并且没有给出关于该场景的示例。
下面是我使用 JSON
格式的堆栈定义:
{
"AWSTemplateFormatVersion" : "2010-09-09",
"Resources" : {
"MyRole" : {
"Type": "AWS::IAM::Role",
"RoleName": "MyRole",
"AssumeRolePolicyDocument": {
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": { "Service": [ "??" ] },
"Action": [ "sts:AssumeRole" ]
}
]
},
"ManagedPolicyArns": [ { "Fn::GetAtt" : [ "MyPolicy", "Arn" ] } ],
}
}
}
最佳答案
好问题!只需使用您的根用户 ARN 作为主体即可。这将允许您控制哪些用户可以使用 IAM 担任该角色。这是一个示例(为了我自己的理智,使用 YAML):
AdministratorRole:
Type: AWS::IAM::Role
Properties:
RoleName: administrator
AssumeRolePolicyDocument:
Version: '2012-10-17'
Statement:
- Effect: Allow
Principal:
AWS: !Sub arn:aws:iam::${AWS::AccountId}:root
Action: sts:AssumeRole
Condition:
Bool:
aws:MultiFactorAuthPresent: 'true'
Path: "/"
ManagedPolicyArns:
- arn:aws:iam::aws:policy/AdministratorAccess
AssumeAdministratorRolePolicy:
Type: AWS::IAM::ManagedPolicy
Properties:
ManagedPolicyName: "AssumeRolePolicy-Administrator"
Description: "Assume the administrative role"
PolicyDocument:
Version: "2012-10-17"
Statement:
- Sid: "AssumeAdministratorRolePolicy"
Effect: "Allow"
Action:
- "sts:AssumeRole"
Resource: !GetAtt AdministratorRole.Arn
AssumeAdministratorRoleGroup:
Type: AWS::IAM::Group
Properties:
GroupName: "AssumeRoleGroup-Administrator"
ManagedPolicyArns:
- !Ref AssumeAdministratorRolePolicy
剩下的唯一一件事就是将用户添加到 AssumeRoleGroup-Administrator 组。
奖励:我添加了一个条件,仅允许使用 MFA 登录的用户承担该角色。
此外,只需将您的 ${AWS::AccountId}
替换为您拥有的另一个账户 ID,您就可以轻松地跨账户承担角色。
关于amazon-web-services - 在 AWS 云形成中承担的角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50756537/
我在尝试使用 create-function 命令创建 lambda 函数时收到错误消息“Lambda 无法承担为函数定义的角色”。 aws lambda create-function --regi
我正在尝试使用代码放置 cloudwatch 事件规则: await cloudwatchevents.putRule({ Name: 'xxx-ec2-start', EventPatter
我有一个应用程序需要以不寻常的方式处理事件。 对于我的问题,我先说明一个简单的案例,Android目前的事件处理系统不适合我。 假设我有一个 FrameLayout(从现在起我将称之为 ViewSwi
我是一名优秀的程序员,十分优秀!