S3バケット内のオブジェクトURLをイメージとして表示する際のアクセス権限について。

S3の公開バケットにQuickSightで表示させたい画像を格納し、QuickSight側ではURLを事前にデータセットとして準備しています。公開バケットには同アカウントのQuickSightからしかアクセスできないようにしたいと考えております。S3のバケットポリシーで実現できるかと思いましたが、QuickSightのARNで設定できないように見受けられました。バケットポリシー他、セキュアな状態でQuickSightに画像を表示させる方法がありましたらご教授ください。

ご質問ありがとうございます。現状、Quicksightの カスタムビジュアルコンテンツ を利用した画像の埋め込みはHTTPS URLスキームのみをサポートしています。また、画像のURLはユーザーのブラウザ経由でアクセスされるため、画像はPublicに公開される必要があります。そのため、Quicksight側からS3の画像を取得したり、アクセスを制限することができません。
社内環境など、ダッシュボードを開くユーザーのグローバルIPが固定される環境であればS3のバケットポリシーを使い特定のIPからのみ画像へのアクセスを許可する事が考えられます。

3 Likes

ご回答頂きありがとうございました。
よくわかりました。

追加で疑問が発生したので改めてご質問させて下さい。
ユーザーのブラウザを経由してURLにアクセスするとご回答頂きましたが、ダッシュボードをPDF形式スケジュールで共有する場合はIPアドレスで制限しているとURLがイメージとして表示されないのではないかと考えましたがいかがでしょうか。

PDFの場合は、生成された時点でのダッシュボードのスナップショットとなり、そのPDFへのアクセスにおいて、S3にあるイメージへのアクセスは発生しません。

1 Like

ご回答ありがとうございます。
ではIPアドレスで制限するという要件となった場合には、バケットポリシーで許可したIPからダッシュボードを作成したらダッシュボードにも画像は表示され、画像やデータを更新したい場合には都度ダッシュボードを公開する必要があるという認識でお間違いないでしょうか。

検証していないため確証はない上での回答になりますが、ダッシュボード上から直接PDFを生成する場合はその時点でブラウザに映っている画像がPDFに転機され、スケジュール実行の場合はQuicksight側のIPが起点となるため画像へのアクセスができないのではないかと思います。
S3のポリシーと連動した画像埋込みがしたいという要望は今後の機能改善のため開発チームへフィードバックさせていただきます。

1 Like

ご回答ありがとうございます。
現状の仕様について理解できました。