0

コピー コマンドを実行して、アカウント A の s3 バケットからアカウント B の redshift にデータをコピーしようとしています。2 つの異なる IAM ロールを作成しました。1 つはアカウント A の s3 用で、もう 1 つはアカウント B の redshift 用です。 IAM ロールを redshift クラスターに追加し、s3 ロールの信頼エンティティとしても追加しました。

s3 IAM ロールの信頼ポリシーは次のとおりです。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::<redshiftAccountId>:root"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

以下は、redshift IAM ロールのインライン ポリシーです。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "rds-db:connect",
                "redshift:GetClusterCredentials",
                "redshift:JoinGroup",
                "redshift:CreateClusterUser"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Resource": "arn:aws:iam::<s3AccountId>:role/<s3Role>"
        }
    ]
}

copy コマンドを実行するたびに、次のエラーが発生します。 ERROR: User arn:aws:redshift:<redshiftAccountRegion>:<redshiftAccountId>:dbuser:<redshift-cluster>/<database-user> is not authorized to assume IAM Role arn:aws:iam::<redshiftAccountid>:role/<redshift-role>,arn:aws:iam::<s3AccountId>:role/<s3Role>

4

1 に答える 1