在 AWS 中尋找使用者所需的最少策略

在 AWS 中尋找使用者所需的最少策略

我嘗試使用AWS EC2。有一個命令

$ aws ec2 describe-instances

答案是:

呼叫DescribeInstances操作時發生用戶端錯誤(UnauthorizedOperation):您無權執行此操作。

但確切的最低政策是什麼
https://console.aws.amazon.com/iam/home?#policies
應該允許使用者執行此(或任何其他特定)命令?

答案1

但確切的最低政策是什麼 https://console.aws.amazon.com/iam/home?#policies 應該允許用戶執行此(或任何其他特定)命令?

除了「AdministratorAccess」策略之外,沒有一個像您所要求的「最小」策略,它使您能夠執行所有命令。但擁有如此大的權力是危險的,不應該毫無理由地使用。

每個策略都是針對您可能想要執行的某些命令組合而設計的。有些是只讀函數的完全存取權(如描述*函數),並且無權「更改」任何內容。其他人可以完全控制某些 AWS 服務(例如允許 EC2,但不允許 RDS)。

如果你真的想要“最小”,那麼內建的策略就不是你想要的。相反,您希望使用 IAM 策略產生器來產生特定於您需要執行的內容的自訂策略。

在你的情況下,要執行aws ec2 describe-instances,你只需要ec2:DescribeInstances在一個策略中,例如

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmt1432001253000",
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeInstances"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}

命令和執行命令所需的策略之間通常存在一一對應的關係。對於大多數 AWS 服務(例如 EC2 和 RDS),所需的政策模仿 CLI/API 命令的名稱。

例如,ec2:DescribeInstances對於aws ec2 describe-instances.

不幸的是,對於 Amazon S3,命令有點不同,並且不完全是一對一的。

如果您想新增aws ec2 describe-snapshots到允許的命令,那麼您只需新增ec2:DescribeSnapshots到上述策略中的「動作」清單即可。

相關內容