繁体   English   中英

sam pipeline bootstrap 创造了一个无所不能的角色

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM