AWS EC2を使ってみます。コマンドがあります
$ aws ec2 describe-instances
答えは次のようになります。
DescribeInstances 操作を呼び出すときにクライアント エラー (UnauthorizedOperation) が発生しました: この操作を実行する権限がありません。
しかし、正確な最小限のポリシーとは何でしょうか
https://console.aws.amazon.com/iam/home?#ポリシー
このコマンド(または他の特定のコマンド)に対してユーザーに許可する必要があるものは何ですか?
答え1
しかし、正確な最小限のポリシーとは何でしょうか https://console.aws.amazon.com/iam/home?#ポリシー このコマンド(または他の特定のコマンド)に対してユーザーに許可する必要があるものは何ですか?
すべてのコマンドを実行する権限を与える「AdministratorAccess」ポリシーを除いて、あなたが求めるような単一の「最小限の」ポリシーは存在しません。しかし、それほど多くの権限を持つことは危険であり、理由なく使用すべきではありません。
各ポリシーは、実行したいコマンドの特定の組み合わせ用に設計されています。一部は読み取り専用機能 (describe* 機能など) にフルアクセスでき、何も「変更」する権限がありません。その他のポリシーは、特定の AWS サービスに対してフルコントロールです (EC2 は許可するが RDS は許可しないなど)。
本当に「最小限」のものが欲しいのであれば、組み込みのポリシーは必要なものではありません。代わりに、IAM ポリシー ジェネレーターを使用して、実行する必要があるものに特化したカスタム ポリシーを生成する必要があります。
あなたの場合、 を実行するには、次のようなポリシーがaws ec2 describe-instances
必要です。ec2:DescribeInstances
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1432001253000",
"Effect": "Allow",
"Action": [
"ec2:DescribeInstances"
],
"Resource": [
"*"
]
}
]
}
通常、コマンドとそれを実行するために必要なポリシーは 1 対 1 で対応しています。ほとんどの AWS サービス (EC2 や RDS など) では、必要なポリシーは CLI/API コマンドの名前を模倣します。
たとえば、ec2:DescribeInstances
の場合aws ec2 describe-instances
。
残念ながら、Amazon S3 の場合、コマンドは少し異なり、正確に 1 対 1 ではありません。
許可されるコマンドを追加する場合は、上記のポリシーの「アクション」リストにaws ec2 describe-snapshots
追加するだけです。ec2:DescribeSnapshots