🐙

【備忘】Aurora MySQLでCSVをインポート・エクスポートする場合の設定

に公開

意外といろいろと権限付与しないとダメだったので(結局サポートに聞いた)、備忘として残しておきます

クラスターのIAM(ロール・ポリシー)

ここで付与するロール

信頼されたエンティティ

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "rds.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}

許可ポリシー

エクスポートの場合も考慮すると意外と許可するアクションが多くなります。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowAuroraToS3Bucket",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:AbortMultipartUpload",
                "s3:ListBucket",
                "s3:DeleteObject",
                "s3:GetObjectVersion",
                "s3:ListMultipartUploadParts"
            ],
            "Resource": "arn:aws:s3:::{{ bucket_name }}/*"
        }
    ]
}

バケットポリシー

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "{{ クラスターに付与したIAMロールのARN }}"
            },
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:GetObjectVersion",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::{{ bucket_name }}/*",
                "arn:aws:s3:::{{ bucket_name }}"
            ]
        }
    ]
}

参考サイト

https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Integrating.SaveIntoS3.html
https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Integrating.Authorizing.IAM.S3CreatePolicy.html

DGBTテックブログ

Discussion