LoginSignup
1
0

More than 3 years have passed since last update.

RedshiftのIAM 認証を使用したデータベースユーザー認証情報の生成の制約事項

Last updated at Posted at 2019-12-19

はじめに

UL Systems Advent Calendar 2019 の16日目です。

データ分析などユーザーがアドホックなクエリを実行する環境では、誰が発行したクエリであるかを把握するために、作業者ごとにデータベースユーザーを作成することがあります。

Redshiftにはデータベースのユーザー認証もIAMで行うことができます。
本機能「IAM 認証を使用したデータベースユーザー認証情報の生成」が導入できるか技術検証を行った際、数点制約事項があることが判明したため、その情報共有となります。

パブリックインターネットアクセスが必須

データベースユーザーの認証情報生成API「get-cluster-credentials」にて、HTTPS (ポート443)でredshift.ap-northeast-1.amazonaws.comにアクセスします。

2019年12月現在、RedshiftはVPCエンドポイントに対応していないため、パブリックインターネット経由でのアクセスが必須となります。

プライベートサブネット上のEC2などからアクセスする場合、「NAT ゲートウェイ / NAT インスタンス」、「プロキシ」などを利用することになります。

get-cluster-credentialsで生成されたユーザーの権限情報を他ユーザーから参照できない

get-cluster-credentialsで生成されたユーザー(user_a)の権限を、他のユーザー(user_b)が参照することができません。
HAS_TABLE_PRIVILEGEなどの権限確認関数は、実行ユーザーによって結果がかわります。今回の例ではuser_aで実行すればtrue、user_bで実行すればfalseが返ります。

その為、user_aが作成したテーブルに対し、あるグループはデフォルトでselectできるようalter default privilegesで権限付与を行いたい場合、user_aでしか行えません。

まとめ

上記のような制約も多いため、導入する前に十分な技術検証期間を設けたほうがよいと思います。
また、公式ドキュメントはあるものの、導入事例の少ない技術でもあるため、問題が発生した場合、自力で解決することになります。
AWSサポートへの問い合わせがなければ解決が難しいことも多いため、ビジネスプラン以上を契約している環境で検証は行いましょう。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0