- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这个 AWS 角色究竟是做什么的?
最相关的位似乎是:"Action": "sts:AssumeRole",
和"Service": "ec2.amazonaws.com"
完整的角色在这里:
resource "aws_iam_role" "test_role" {
name = "test_role"
assume_role_policy = <<EOF
{
"Version": "2012-10-17",
"Statement": [
{
"Action": "sts:AssumeRole",
"Principal": {
"Service": "ec2.amazonaws.com"
},
"Effect": "Allow",
"Sid": ""
}
]
}
EOF
}
最佳答案
要理解这一点的含义,有必要了解 IAM 角色如何工作的一些细节。
IAM 角色在其结构中类似于用户,但不是通过一组固定的凭证访问它,而是通过承担角色来使用它,这意味着请求和获取临时 API 凭证,这些凭证允许使用以下权限执行操作被授予角色。
The sts:AssumeRole
action是获得此类临时凭证的方式。要使用它,用户或应用程序使用一些已获得的凭据(例如用户的固定访问 key )调用此 API,并返回(如果允许)一组新的凭据以充当角色。这是 AWS 服务可以代表您调用其他 AWS 服务、IAM 实例配置文件在 EC2 中工作以及用户可以在 AWS 控制台中临时切换访问级别或账户的机制。
承担角色策略确定允许哪些委托(delegate)人(用户、其他角色、AWS 服务)调用 sts:AssumeRole
对于这个角色。在此示例中,EC2 服务本身被授予访问权限,这意味着 EC2 能够使用此角色代表您执行操作。
仅此角色资源没有用处,因为它没有任何关联的 IAM 策略,因此不授予任何访问权限。因此 aws_iam_role
资源将始终伴随至少一个其他资源以指定其访问权限。做这件事有很多种方法:
aws_iam_role_policy
将策略直接附加到角色。在这种情况下,策略将描述允许该角色执行的一组 AWS 操作,以及可选的其他约束。 aws_iam_policy
创建独立策略,然后使用 aws_iam_policy_attachment
将该策略与一个或多个角色、用户和组相关联。如果您希望将单个策略附加到多个角色和/或用户,此方法很有用。 policy
aws_s3_bucket
上的属性设置特定于存储桶的策略; Principal
策略文档中的元素可用于指定哪些委托(delegate)人(例如角色)可以采取某些行动。 aws_iam_role_policy
和
aws_iam_policy_attachment
,通常适用于拥有一个集中的安全团队来监督整个帐户的访问的组织,而特定于服务的策略将访问控制决策委托(delegate)给负责每个单独对象的个人或团队。这两种方法可以结合起来,作为纵深防御策略的一部分,例如使用角色和用户级别的策略来实现“边界”访问控制(控制来自外部的访问)和服务级别策略来控制内部访问控制(控制之间的交互)您帐户中的对象)。
关于amazon-web-services - Terraform:AssumeRole:Service:ec2 做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44623056/
我试图在我的 PHP 程序中使用 AWS sts 调用 AssumeRole 函数,因为我想创建临时凭证以允许用户为 AWS 存储桶创建对象。 下面是我调用 PHP 的函数: $sts = Sts
我已经运行了以下代码段。我对 aws 的调用工作正常,但现在我不得不转换角色,它遇到了问题,使它生效,因为它似乎我仍然停留在原来的角色。 public void awsAssumeRoleUs
我有一个 cloudformation 模板,它创建 lambda 函数以及该 lambda 函数的角色。我尝试假设 lambda 函数中的角色,但不断收到错误: An error occurred
我正在尝试使用新的 DynamoDB BatchResolvers 写入 AppSync 解析器中的两个 DynamoDB 表(目前使用 Lambda 函数来执行此操作)。但是,在查看 CloudWa
我在 iOS AWS sdk 中使用“AssumeRole”api 来生成临时安全凭证。任何人都可以告诉这个步骤或为此提供示例应用程序吗? TSC = [[AmazonSecurityTokenSe
我正在尝试执行包含以下资源的 cloudformation 堆栈: 代码构建项目 Codepipeline 管道 所需角色 尝试执行堆栈时,失败并出现以下错误: arn:aws:iam::ACCOUN
我在 中使用以下 IAM 角色创建了一个 lambda 函数( lambda-get-details )账号-A 角色名称 : lambda 角色 { "Version": "2012-10-
我正在尝试使用云形成堆栈模板创建代码管道资源,该管道用于跨帐户中的 lamda 部署。 通过云形成堆栈创建代码管道时,我遇到以下错误 arn:aws:iam::{AccountA}:role/test
我在这里做错了什么?如果我使用,我可以通过 aws cli 和 boto 担任角色: boto3.setup_default_session(profile_name="ROLE_TO_ASSUME"
调用 STS 的 assume role 方法时出现错误。它表示用户无权对资源 xxx 执行 sts:AsumeRole。 我做了以下事情: 我创建了一个角色来访问 S3 存储桶。 我对策略模拟器进行
我想向现有用户颁发临时凭证,允许他们访问 AWS 管理控制台,方法是向他们提供使用这些临时凭证创建的 URL。 我正在关注通过 AWS 文档给出的书面示例:Example Code Using IAM
我正在尝试生成临时凭据访问 key 和 secret key 。我用过 AssumeRole .描述说它生成一个访问 key 和 secret key 。但是GetSessionTokenResult
我试图以这样一种方式使用 AssumeRole,以便我遍历多个帐户并检索这些帐户的 Assets 。我已经做到了这一点: import boto3 stsclient = boto3.client('
这个 AWS 角色究竟是做什么的? 最相关的位似乎是:"Action": "sts:AssumeRole",和"Service": "ec2.amazonaws.com" 完整的角色在这里: reso
几天来,我一直无法弄清楚为什么一个 AWS 角色无权在另一个角色上执行 AssumeRole。在本例中,我有一个带有 AWS CodeCommit 的开发帐户和一个带有 CodePipeline 的工
我有一个 CloudFormation 堆栈,可以创建多个 IAM 角色。我有一个听起来有些不寻常的要求,即在角色的 AssumeRole 策略中包含一个声明,以防止角色自行承担。角色名称是使用 Fn
我是 AWS iOS SDK 的新手。我正在尝试使用来自 iPhone 应用程序的 "assumeRole" api 生成临时安全凭证。我在我的项目中添加了 AWSSecurityTokenServi
我想将我的代码部署到 EC2 实例,但我不想加入 AWS Key 和 Secret。 AWS 提供 IAM 服务,允许我为我的 EC2 实例分配一个角色,这将允许这些实例使用临时 key 进行访问。
我是 aws 的新手。我想为 aws 调用生成临时凭证。为此,我使用了 Making Requests Using IAM User Temporary Credentials - AWS SDK f
我正在尝试计算 AWS CloudFormation 模板的逻辑流程,该模板将承担一个 IAM 角色,可以从另一个 AWS 账户的 S3 存储桶中提取文件。 到目前为止我所拥有的是: 账户A有一个角色
我是一名优秀的程序员,十分优秀!