他のアカウントにある S3 バケットの URL にアクセスしたときの表示について

2023.08.15

はじめに

他の AWS アカウントのバケットの URLにアクセスしたことで、今回の仕様が判明いたしました。
知っていないとハマりそうだと感じましたので、ブログ化いたしました。

今回の内容について

自身の保有する AWS アカウントのコンソールにログインした状態で特定のバケットの URL にアクセスしたところアクセス権限に関するエラーが表示されました。
権限が足りないと判断し、調査を進めたところ特定のバケットは対象の AWS アカウントには存在せず、他の AWS アカウントに存在するバケットであることがわかりました。

結論

アクセスしようとした他の AWS アカウントのバケットへのアクセス権限がない場合、バケットの URL にアクセスするとアクセス権限に関するエラーが表示されます。
バケットが自身の AWS アカウントに存在しないことはエラーの内容からは分からず、あたかも自身の AWS アカウントにそのバケットが存在するかのように見えてしまいます。

検証して表示を確認してみた

別アカウントにバケットが存在する場合

  • アカウントA にバケットA を作成します
  • アカウントB のコンソールにログインした状態で以下 URL をクリックすると、以下が表示されます

https://s3.console.aws.amazon.com/s3/buckets/バケットA
※今回実際に検証したバケット名はマスクしております。


※キャプチャはタブ「オブジェクト」についての画像です。

S3 バケットの各タブについてどのようなエラーメッセージが記載されているかについて以下に記載します

タブ「オブジェクト」について

「オブジェクトを一覧表示するアクセス許可が不十分です」と表示されます。

タブ「プロパティ」について

バケットの概要
  AWSリージョン・ARNは確認でき、作成日は「使用不可」となります。

バケットのバージョニング
  「バケットのバージョニングの詳細を取得するためのアクセス許可がありません」と表示されます。

タグ
  「タグを取得するアクセス許可がありません」と表示されます。

デフォルトの暗号化
  「デフォルトの暗号化の詳細を取得するアクセス許可がありません」と表示されます。

Intelligent-Tiering Archive 設定
  「アーカイブ層の設定を取得するアクセス許可がありません」と表示されます。

サーバーアクセスのログ記録
  「サーバーアクセスのログ記録の詳細を取得するアクセス許可がありません」と表示されます。

AWS CloudTrail データイベント
  「データイベントなし」と表示されます。

イベント通知
  「イベント通知を取得するアクセス許可がありません」と表示されます。

Amazon EventBridge
  「イベント通知を取得するアクセス許可がありません」と表示されます。

Transfer Acceleration
  「Transfer Acceleration の詳細を取得するアクセス許可がありません」と表示されます。

オブジェクトロック
  「オブジェクトロックの詳細を取得するためのアクセス許可がありません」と表示されます。

リクエスタ支払い
  「リクエスタ支払い詳細を取得するアクセス許可がありません」と表示されます。

静的ウェブサイトホスティング
  「静的ウェブサイトホスティングの詳細を取得するアクセス許可がありません」と表示されます。

タブ「アクセス許可」について

ブロックパブリックアクセス (バケット設定)
  「ブロックパブリックアクセス (バケット設定) の設定を表示するアクセス許可がありません」と表示されます。

バケットポリシー
  「バケットポリシーを取得するアクセス許可がありません」と表示されます。

オブジェクト所有者
  「オブジェクト所有者 (バケット設定) の構成を表示するための許可がありません」と表示されます。

アクセスコントロールリスト (ACL)
  「ACL 設定を取得するアクセス許可がありません」と表示されます。

Cross-Origin Resource Sharing (CORS)
  「CORS を取得するアクセス許可がありません」と表示されます。

タブ「メトリクス」について

バケットメトリクス
  「データがありません」と表示されます。

ストレージクラス分析
  「ストレージクラス分析の設定を一覧表示するためのアクセス許可が不十分」と表示されます。

レプリケーションメトリクス
  「レプリケーション設定を表示するアクセス許可がありません」と表示されます。

タブ「管理」について

「ライフサイクル設定を表示するアクセス許可がありません」と表示されます。
「レプリケーション設定を表示するアクセス許可がありません」と表示されます。
「このバケットのインベントリ設定を一覧表示するアクセス許可がありません」と表示されます。

タブ「アクセスポイント」について

アクセスポイント
  「不明なエラー」と表示されます。

存在しないバケットのURLにアクセスする場合

存在しないバケット「バケットB」のURLにアクセスすると、「バケット「バケットB」が見つかりませんでした。」と表示されます。
https://s3.console.aws.amazon.com/s3/buckets/バケットB
※今回実際に検証したバケット名はマスクしております。

最後に

こちらの現象に遭遇して衝撃だったので、ブログ化しました。
同じことに遭遇した方がハマらないようにこのブログがヒントになれば幸いです。