簡體   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