同じ問題がありました。RDS インスタンスが使用していた IAM ロールに AmazonS3FullAccess を追加しようとしましたが、うまくいきませんでした。
いろいろ調べた後、RDS コンソールの [クラスター] に移動しました。Aurora クラスターを選択し、[IAM ロールの管理] をクリックしました。ドロップダウンが表示されたので、IAM ロールを選択しました (個々のインスタンスが使用していたものと同じ)。
私がそれをしたら、すべてがうまくいき、データの読み込みは素晴らしく速くなりました.
したがって、(私たちにとって) 5 つのステップ/コンポーネントがあります。
1) ユーザーがオブジェクトをアップロードできるようにする S3 バケットとバケット ポリシー
{
"Version": "2012-10-17",
"Id": "Policy1453918146601",
"Statement": [
{
"Sid": "Stmt1453917898368",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<account id>:<user/group/role>/<IAM User/Group/Role>"
},
"Action": [
"s3:DeleteObject",
"s3:GetObject",
"s3:PutObject"
],
"Resource": "arn:aws:s3:::<bucket name>/*"
}
]
}
「プリンシパル」は、RDS インスタンスがデータをインポートできるように、バケットにデータ ファイルをアップロードする IAM ユーザー、グループ、またはロールです。
2) IAM ポリシー:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1486490368000",
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:GetObjectVersion",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::<bucket name>/*"
]
}
]
}
これは、ポリシー ジェネレーターを使用すると非常に簡単です。
3) IAM ロールを作成します。
このロールには、上記の IAM ポリシーを割り当てる必要があります。このポリシーを今後他のロールに使用しない場合は、おそらくインライン ポリシーも実行できますが、必要に応じて後で参照できる定義済みのポリシーを用意するというアイデアが気に入っています。
4) クラスター/インスタンスが aws_default_s3_role 値を上記 #3 のロールの ARN に設定するために使用するパラメーター グループを設定します。
5) [クラスター] に移動し、クラスターを選択して [IAM ロールの管理] を選択し、DB クラスターの IAM ロールを設定して、Aurora クラスターを構成します。
少なくとも私にとっては、これらの手順は魅力的でした。
それが役立つことを願っています!