ablog

不器用で落着きのない技術者のメモ

Redshift で VPC エンドポイント経由で S3 にアクセスする

Enhanced VPC Routing を有効にすると Redshift から S3 への COPY/UNLAOD を VPCエンドポイント経由になる。従って、VPCエンドポイントポリシーでアクセス可能な S3 バケットを絞ることが可能。

例えば、Redshiftをプライベートサブネットに配置、インターネットに接続できない環境でも、S3とインターネット経由にて通信できました。また、VPCエンドポイントを設定しても反映されずに、インターネット経由での通信となっていました。

今回のアップデートは、「Enhanced VPC Routing」という設定項目が追加され、こちらを有効にすることでVPCにて設定しているルートテーブルに従った通信を行うようになります。このパラメータは、新規作成時にも、既存のクラスタに対しても設定できます。


(中略)

まず、S3へはVPCエンドポイント経由にてプライベート接続が可能になります。

もう一つ、S3バケットポリシーでソースIPにてRedshiftのパブリックIPを指定している環境がありました。この環境に対して、Redshiftノード追加を行うとパブリックIPが全て書き変わってしまうので、毎度毎度、複数のバケットに対してポリシー変更を行う必要がありました。こちらを有効にすることで、バケットポリシーはIPベースではなくVPC単位でアクセス許可することができるようになりました。毎度毎度の変更が不要になりました!

RedshiftでVPCルーティングを利用し、VPCエンドポイント経由でデータをロードする | Developers.IO

VPC エンドポイントポリシーは、すべてのマニフェストファイル関連へのアクセスを含む Amazon Redshift で呼び出される COPY、UNLOAD、CREATE LIBRARY で使用されるすべての Amazon S3 バケットへのアクセスを許可している必要があります。リモートホストからの COPY では、エンドポイントポリシーが各ホストマシンへのアクセスを許可している必要があります。詳細については、Amazon Redshift Database Developer Guide の「COPY、UNLOAD と CREATE LIBRARY の IAM アクセス権限」を参照してください。

拡張された VPC ルーティングの有効化 - Amazon Redshift