[英]sam pipeline bootstrap created an omnipotent role
在AWS SAM 教程研讨会的 CI/CD 部分,当我运行sam pipeline init --bootstrap
并完成配置时,使用此策略创建了一个角色:
{
"Version": "2012-10-17",
"Statement": [
{
"Action": "*",
"Resource": "*",
"Effect": "Allow"
}
]
}
这不会授予角色对我的 AWS 帐户的完全权限,这是一个很大的禁忌吗? 还是因为权限授予了 AWS 服务而不是用户?
这是信任关系:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "cloudformation.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
拥有具有这些权限的角色很好。 当您创建普通 AWS 账户(换句话说,我不包括那些由 Control Tower 等企业登录区创建的账户)时,它会附带一个名为AdministratorAccess 的策略和一个名为 Administrator的角色。
最佳实践是您允许谁或什么以及何时使用该策略。
角色优先于用户,因为角色提供安全凭证。 对于用户,您拥有需要保护的持久凭证。
在这种情况下,您允许 CloudFormation 担任此角色。 这是有道理的,因为 CloudFormation 通常需要能够创建和修改任何资源,包括 IAM 角色。 如果您知道您不会创建或修改 IAM 资源,您可以使用限制性更强的角色(最低权限),例如使用如下所示的PowerUserAccess 策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"NotAction": [
"iam:*",
"organizations:*",
"account:*"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"iam:CreateServiceLinkedRole",
"iam:DeleteServiceLinkedRole",
"iam:ListRoles",
"organizations:DescribeOrganization",
"account:ListRegions"
],
"Resource": "*"
}
]
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.