例えば EC2 インスタンスからバックアップを S3 に保存する為に AmazonS3FullAccess の Policy を付与すると、不必要な Bucket までフルアクセス出来てしまいます。操作ミス等があっても、意図しない Bucket には影響を与えないようにする為には『指定した Bucket にしかアクセスさせない Policy』を作成することで対応可能です。
例えば「SAMPLE.BUCKET」という Bucket にのみ、アクセスを許可する Policy は以下のようになります。s3:ListAllMyBuckets は Allow しているので例えば aws s3 ls で Bucket 名を列挙することは出来ますが、aws s3 ls ANOTHER.BUCKET で許可していない Bucket の中身を表示しようとするとエラーになります(拒否されます)。当然、aws s3 ls SAMPLE.BUCKET はエラーにならず、Bucket の中身が表示されます。
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"s3:ListAllMyBuckets"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::*"
},
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::SAMPLE.BUCKET",
"arn:aws:s3:::SAMPLE.BUCKET/*"
]
}
]
}
コメント