1

Redshift クラスターからデータをアンロードするために AWS Glue サービスの S3 VPC エンドポイントを作成すると、ETL ジョブは、VPC エンドポイント ポリシーが「フル アクセス」に設定されている場合にのみ機能します。

すなわち

 {
    "Statement": [
        {
            "Action": "*",
            "Effect": "Allow",
            "Resource": "*",
            "Principal": "*"
        }
    ]
}

ポリシーを「カスタム」に設定し、以下のように変更した場合は動作しません。

{
    "Statement": [
        {
            "Action": "*",
            "Effect": "Allow",
            "Resource": ["arn:aws:s3:::examplebucket",
                   "arn:aws:s3:::examplebucket/*"],
            "Principal": "*"
        }
    ]
}

ETL ジョブでは、ETL スクリプトと一時ファイルを保存する場所として examplebucket を指定したため、ポリシーがカスタムに設定されている場合にのみ ETL ジョブが失敗する理由を理解するのは難しいと思います。Glue は、ジョブで指定されたバケット以外の別の S3 リソースにアクセスしようとしますか?

4

1 に答える 1

2

Glue ジョブには以下も必要です。 1. S3 の一時ディレクトリ。2. 生成された Python スクリプトを保存する S3 内の場所。

たとえば、スクリプトの場所が指定されていない場合。接着剤は、次の場所「s3://aws-glue-scripts-YourAccountId-us-east-1/」を自動的に選択します

IAM ロール ポリシーにも、選択した s3 の場所が反映されていることを確認してください。

于 2017-09-11T02:37:56.133 に答える