EC2からS3へのファイルアップロードに手間取ったので記録します。
実施すること
1.EC2にアタッチしているIAMロールの見直し
2.S3のバケットポリシーの見直し
1.EC2にアタッチしているIAMロールの見直し
以下のポリシーがアタッチされていることを確認します。
・S3へのアクセス許可
手っ取り早く実装したいなら「AmazonS3FullAccess」をアタッチすればOK。
セキュリティ要件に応じて書き換えてください。
・KMSへのアクセス許可
AWS管理ポリシーとしては提供されていないので、作成します。
kms-policy
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": "kms:GenerateDataKey",
"Resource": "arn:aws:kms:*:YOURACCOUNTID:key/*"
}
]
}
2.S3のバケットポリシーの見直し
アクセス許可のバケットポリシーに明示的にdenyポリシーが書かれていないか確認します。
必要に応じて削除してください。
何も記述されていない状態でも、EC2側に適切なロールがアタッチされていれば、uploadは可能ですが、記述例を載せておきます。
bucket-policy
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "SourceIP",
"Effect": "Deny",
"Principal": "*",
"Action": [
"s3:PutObject",
"s3:PutObjectAcl"
],
"Resource": "arn:aws:s3:::YOURS3BUCKETNAME/*",
"Condition": {
"NotIpAddress": {
"aws:SourceIp": [
"SOURCEIP1",
"SOURCEIP2"
]
}
}
}
]
}
以上です。どなたかの参考になれば。