AWS re:Postを使用することにより、以下に同意したことになります AWS re:Post 利用規約

クロスアカウントのRedshiftからS3へunload時のエラー

0

別のアカウントのRedshiftへAssumeRoleを使いunloadコマンドを実行し、こちらのアカウントのS3へファイル出力しようとしています。 S3バケットのバケットポリシーに別アカウントのアクセスを許可し、別アカウント側では指定のバケットへs3:PutObjectポリシーをつけていますが S3ServiceException:Access Denied,Status 403で Failed to initialize S3 output stream というエラーが出ています。何が不足しているのでしょうか?

1回答
0
承認された回答

このエラーは、クロスアカウントでのRedshiftからS3へのunload操作において、アクセス権限が適切に設定されていない可能性を示しています。以下の点を確認し、対応することで問題が解決する可能性があります:

  1. S3バケットポリシー:

    • バケットポリシーが正しく設定されているか再確認してください。特に、別アカウントのRedshiftクラスターのIAMロールに対して、s3:PutObject権限だけでなく、s3:ListBucket権限も付与されているか確認してください。
  2. IAMロールの設定:

    • Redshiftクラスターに関連付けられたIAMロールが、正しく設定されているか確認してください。
    • AssumeRole設定が正しいか、また、S3バケットにアクセスするための適切な権限が含まれているか確認してください。
  3. S3バケットの暗号化設定:

    • S3バケットで暗号化が有効になっている場合、Redshiftクラスターのロールに暗号化/復号化の権限があるか確認してください。
  4. S3 Block Public Access設定:

    • S3バケットのBlock Public Access設定が、意図せずにアクセスをブロックしていないか確認してください。
  5. VPCエンドポイントポリシー:

    • VPCエンドポイントを使用している場合、そのポリシーが適切に設定されているか確認してください。
  6. AWS Organizations SCP:

    • AWS Organizationsを使用している場合、サービスコントロールポリシー(SCP)がS3へのアクセスを制限していないか確認してください。

これらの点を確認し、必要に応じて設定を調整することで、クロスアカウントでのRedshiftからS3へのunload操作が正常に行えるようになる可能性が高いです。それでも問題が解決しない場合は、AWS CloudTrailログを確認して、より詳細なエラー情報を得ることができます。
Sources
Access control in Amazon S3 - Amazon Simple Storage Service
Troubleshoot access denied (403 Forbidden) errors in Amazon S3 - Amazon Simple Storage Service

profile picture
回答済み 1ヶ月前

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

質問に答えるためのガイドライン