我嘗試使用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
到上述策略中的「動作」清單即可。