私はここで何が欠けているのかを理解しようとして、AWSで実際に動き回っています。IAMユーザーがS3バケットからファイルをダウンロードできるようにしたい-ファイルを完全に公開するだけでなく-アクセスが拒否されています。誰もがオフになっているものを見つけることができれば、私は興奮します。
これまでにやったこと:
- my-userという名前のユーザーを作成しました(例のため)
- ユーザーのアクセスキーを生成し、EC2インスタンスの〜/ .awsに配置します
- 私のユーザーにアクセスを許可したいバケットポリシーを作成しました
- コマンドを実行しました
aws s3 cp --profile my-user s3://my-bucket/thing.zip .
バケットポリシー:
{
"Id": "Policy1384791162970",
"Statement": [
{
"Sid": "Stmt1384791151633",
"Action": [
"s3:GetObject"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::my-bucket/*",
"Principal": {
"AWS": "arn:aws:iam::111122223333:user/my-user"
}
}
]
}
その結果A client error (AccessDenied) occurred: Access Denied
、同じコマンドとデフォルト(ルートアカウント?)アクセスキーを使用してダウンロードできます。
ユーザーポリシーも追加してみました。なぜそれが必要になるのかはわかりませんが、痛くないと思ったので、これをユーザーに添付しました。
{
"Statement": [
{
"Sid": "Stmt1384889624746",
"Action": "s3:*",
"Effect": "Allow",
"Resource": "arn:aws:s3:::my-bucket/*"
}
]
}
同じ結果。