amazon-web-services - AWS 服务委托人是否在策略文档中隐含了账户范围?
问题描述
考虑为 accountA 中的 IAM 角色配置的以下信任关系:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "cloudformation.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
这是否隐含地将访问范围缩小到在帐户 A 中运行的 cloudformation,或者任何其他帐户(B、C、D 等)中的 cloudformation 堆栈可以承担此角色?
我以前使用 sourceArn 条件来避免代理攻击,如下所示:
"Condition": {
"ArnLike": {
"aws:SourceArn": [
"xxxx"
]
}
}
这是必要的,还是初始策略足以将信任关系缩小到 accountA?
解决方案
此策略允许 CloudFormation 服务代入您账户中的角色。
默认情况下,这也适用于您的帐户,即只有您帐户中的 CloudFormation 可以担任该角色,而不是其他帐户的 CloudFormation。您必须显式添加具有另一个帐户 ID 的 Principal 以允许从另一个帐户中的 CloudFormation 进行跨帐户访问 - 如下所示:
"Principal": {
"AWS": "123456789012"
"Service": "cloudformation.amazonaws.com"
},
需要明确的是,用户需要具有以下权限才能将角色传递给服务。
- “我:GetRole”
- “我:密码角色”
如果您的 IAM 角色 Arn 没有这些权限,他们无法将其传递给 CloudFormation 服务以允许代入。
因此,简而言之,除了能够承担角色的服务之外,用户/角色还需要传递 IAM 角色 arn 的权限。
授予用户权限以将角色传递给 AWS 服务文档中提供了更多信息。
推荐阅读
- c++ - 如何在通用 inttype 上设置/检查 msb?
- excel - 将值传输到范围底部的循环错误地覆盖了值
- winforms - 无法从 Azure 逻辑 App Monitoring Rest Api 检索超过 30 个工作流运行详细信息
- php - 防止通过 AJAX 调用的 MySQL 存储过程出现“Commands Out of Sync”错误
- c# - 从通用接口转换为对象返回 null
- opencv - 图像配准的边缘/结构匹配
- buildroot - Buildroot 构建问题
- java - 链接多个 CompletableFuture 调用,每个调用都有自己的异常逻辑是一种好习惯吗?
- c# - 将对象对齐到中心
- java - Jenkins 级别的 ant 插件将使用系统或自定义 java home