定義済みのマシン イメージを実行するための最小限のポリシーを絞り込もうとしています。イメージは 2 つのスナップショットに基づいており、「m1.medium」インスタンス タイプのみを起動したいと考えています。
それに基づいて、このページとこの記事の助けを借りて、次のポリシーを作成しました。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1385026304010",
"Effect": "Allow",
"Action": [
"ec2:RunInstances"
],
"Condition": {
"StringEquals": {
"ec2:InstanceType": "m1.medium"
}
},
"Resource": [
"arn:aws:ec2:us-east-1::instance/*",
"arn:aws:ec2:us-east-1::image/ami-f1c3e498",
"arn:aws:ec2:us-east-1::snapshot/snap-e2f51ffa",
"arn:aws:ec2:us-east-1::snapshot/snap-18ca2000",
"arn:aws:ec2:us-east-1::key-pair/shenton",
"arn:aws:ec2:us-east-1::security-group/sg-6af56d02",
"arn:aws:ec2:us-east-1::volume/*"
]
}
]
}
ポリシーは、特定のインスタンスとボリュームを開いたままにして、正確なイメージ、スナップショット、セキュリティ グループ、およびキー ペアを絞り込みます。
here で説明されているように、次のように CLI ツールを使用しています。
aws ec2 run-instances --dry-run \
--image-id ami-f1c3e498 \
--key-name shenton \
--security-group-ids sg-6af56d02 \
--instance-type m1.medium
は次の~/.aws/config
とおりです。
[default]
output = json
region = us-east-1
aws_access_key_id = ...
aws_secret_access_key = ...
このコマンドの結果は一般的なYou are not authorized to perform this operation
メッセージになり、エンコードされた認証失敗メッセージは、私のステートメントがどれも一致しなかったことを示しているため、アクションを拒否します。
に変更すると"Resource": "*"
明らかに問題は解決しますが、上記が機能しない理由についてもっと理解を深めたいと思います。これにはある程度の当て推量が含まれることを十分に理解しているので、どんなアイデアでも歓迎します。