IAM Access Analyzer for S3 を使用したバケットアクセスの確認 - Amazon Simple Storage Service

IAM Access Analyzer for S3 を使用したバケットアクセスの確認

IAM Access Analyzer for S3 は、インターネット (公衆) の任意のユーザーや他の AWS アカウント (組織外の AWS アカウントを含む) にアクセスを許可するように設定されている S3 汎用バケットに関して外部アクセスの検出結果を提供します。パブリックに共有されているバケットごと、または他の AWS アカウントと共有されているバケットごとに、共有アクセスのソースとレベルを示す検出結果が送信されます。例えば、IAM Access Analyzer for S3 は、バケットのアクセスコントロールリスト (ACL)、バケットポリシー、マルチリージョンアクセスポイントポリシー、またはアクセスポイントポリシーを通じて、バケットに読み取りまたは書き込みのアクセス許可が提供されていることを示す場合があります。この情報を用いて、迅速で正確な是正処置を講じ、バケットへのアクセスを意図したとおりに復元できます。

Amazon S3 コンソールは、汎用バケットのリストの横にある S3 コンソールに [外部アクセスの概要] を表示します。概要では、それぞれの AWS リージョンでのアクティブな検出結果をクリックすると、[IAM Access Analyzer for S3] ページで検出結果の詳細を確認できます。外部アクセスの概要の外部アクセスの検出結果は、24 時間に 1 回自動的に更新されます。

パブリックアクセスを許可するバケットを確認する場合、IAM Access Analyzer for S3 ページで、ワンクリックでバケットへのすべてのパブリックアクセスをブロックできます。特定のユースケースをサポートするためにパブリックアクセスが必要な場合を除き、バケットへのすべてのパブリックアクセスをブロックすることをお勧めします。すべてのパブリックアクセスをブロックする前に、アプリケーションがパブリックアクセスなしで正常に動作することを確認してください。詳細については、Amazon S3 ストレージへのパブリックアクセスのブロック を参照してください。

また、バケットレベルのアクセス許可の設定を参照して、きめ細かいアクセスレベルを設定することもできます。静的なウェブサイトホスティング、パブリックダウンロード、クロスアカウント共有など、パブリックアクセスを必要とする特定の検証済みユースケースについては、バケットの結果をアーカイブすることで、バケットをパブリックまたは共有とすることを確定して記録できます。これらのバケット設定はいつでも再確認および変更できます。結果は、監査目的で CSV レポートとしてダウンロードすることもできます。

IAM Access Analyzer for S3 は、Amazon S3 コンソールで追加料金なしで使用できます。IAM Access Analyzer for S3 は、AWS Identity and Access Management (IAM) IAM Access Analyzer を利用しています。Amazon S3 コンソールで IAM Access Analyzer for S3 を使用するには、IAM コンソールにアクセスして、リージョンごとに外部アクセスアナライザーを作成する必要があります。

IAM Access Analyzer の詳細については、「IAM ユーザーガイド」の「IAM Access Analyzer とは?」を参照してください。IAM Access Analyzer for S3 の詳細については、次のセクションを参照してください。

重要
  • IAM Access Analyzer for S3 では、バケットがある各 AWS リージョンにアカウントレベルのアナライザーが必要です。IAM Access Analyzer for S3 を使用するには、IAM Access Analyzer にアクセスして、信頼ゾーンとしてアカウントを持つアナライザーを作成する必要があります。詳細については、IAM ユーザーガイド の「IAM Access Analyzer の有効化」を参照してください。

  • IAM Access Analyzer for S3 は、クロスアカウントアクセスポイントにアタッチされているアクセスポイントポリシーを分析しません。この動作は、アクセスポイントとそのポリシーが信頼ゾーン、つまりアカウントの外にあるために発生します。クロスアカウントアクセスポイントへのアクセスを委任するバケットは、バケットまたはアカウントにパブリックアクセスをブロックする RestrictPublicBuckets 設定を適用していない場合、[Buckets with public access] (パブリックアクセスのあるバケット) に一覧表示されます。パブリックアクセスをブロックする設定 RestrictPublicBuckets を適用すると、そのバケットは、[サードパーティーの AWS アカウント を含む他の AWS アカウント からのアクセスがあるバケット] に表示されます。

  • バケットポリシーまたはバケット ACL を追加または変更すると、IAM Access Analyzer は 30 分以内に変更に基づいて結果を生成および更新します。アカウントレベルのブロックパブリックアクセス設定に関連する結果は、設定を変更してから最大 6 時間まで生成または更新されない場合があります。マルチリージョンアクセスポイントに関連する調査結果は、マルチリージョンアクセスポイントの作成、削除、またはポリシーの変更後、最大 6 時間は生成または更新できない場合があります。

バケットへの外部アクセスを許可するポリシーのグローバル概要の確認

外部アクセスの概要を使用して、S3 コンソールから直接 AWS アカウント全体でバケットへの外部アクセスを許可するポリシーのグローバル概要を表示できます。この概要は、各 AWS リージョンのポリシーを個別に検査することなく、パブリックアクセスまたは他の AWS アカウントからのアクセスを許可する AWS リージョン内の Amazon S3 汎用バケットを識別するのに役立ちます。

外部アクセスの概要と IAM Access Analyzer for S3 を有効にする

外部アクセスの概要と IAM Access Analyzer for S3 を使用するには、前提条件に関する以下のステップを完了する必要があります。

  1. 必要なアクセス権限を付与します。詳細については、IAM ユーザーガイドの「IAM Access Analyzer の使用に必要なアクセス許可」を参照してください。

  2. IAM にアクセスして、IAM Access Analyzer を使用するリージョンごとにアカウントレベルのアナライザーを作成します。

    これを行うには、IAM コンソールで信頼ゾーンとしてアカウントを持つアナライザーを作成するか、AWS CLI または AWS SDK を使用します。詳細については、「IAM ユーザーガイド」の「IAM Access Analyzer の有効化」を参照してください。

外部アクセスを許可するバケットの表示

外部アクセスの概要には、汎用バケット用に IAM Access Analyzer for S3 によって提供される外部アクセスの検出結果とエラーが表示されます。アーカイブされた検出結果と未使用のアクセスの検出結果は概要に含まれませんが、IAM コンソールまたは IAM Access Analyzer for S3 で表示できます。詳細については、「IAM ユーザーガイド」の「IAM Access Analyzer の検出結果ダッシュボードを表示する」を参照してください。

注記

外部アクセスの概要には、ご利用の AWS Organization ではなく、AWS アカウントごとの外部アクセスアナライザーの検出結果のみが含まれます。

  1. Amazon S3 コンソール (https://console.aws.amazon.com/s3/) を開きます。

  2. 左のナビゲーションペインで、[汎用バケット] を選択します。

  3. [外部アクセスの概要] を展開します。コンソールには、アクティブなパブリックアクセスとクロスアカウントアクセスの検出結果が表示されます。

    注記

    S3 でバケットの詳細のロードに問題がある場合は、汎用バケットリストを更新するか、IAM Access Analyzer for S3 で検出結果を表示します。詳細については、「IAM Access Analyzer for S3 を使用したバケットアクセスの確認」を参照してください。

  4. AWS リージョンの検出結果またはエラーのリストを表示するには、リージョンへのリンクを選択します。[IAM Access Analyzer for S3] ページには、パブリックにアクセスできるか、他の AWS アカウントからアクセスできるバケットの名前が表示されます。詳細については、「IAM Access Analyzer for S3 が提供する情報」を参照してください。

外部アクセスを許可するバケットのアクセスコントロールの更新

  1. Amazon S3 コンソール (https://console.aws.amazon.com/s3/) を開きます。

  2. 左のナビゲーションペインで、[汎用バケット] を選択します。

  3. [外部アクセスの概要] を展開します。コンソールには、パブリックにアクセスできるか、他の AWS アカウントからアクセスできるバケットのアクティブな検出結果が表示されます。

    注記

    S3 でバケットの詳細のロードに問題がある場合は、汎用バケットリストを更新するか、IAM Access Analyzer for S3 で検出結果を表示します。詳細については、「IAM Access Analyzer for S3 を使用したバケットアクセスの確認」を参照してください。

  4. AWS リージョンの検出結果またはエラーのリストを表示するには、リージョンへのリンクを選択します。IAM Access Analyzer for S3 には、パブリックにアクセスできるか、他の AWS アカウントからアクセスできるバケットのアクティブな検出結果が表示されます。

    注記

    外部アクセスの概要の外部アクセスの検出結果は、24 時間に 1 回自動的に更新されます。

  5. バケットへのすべてのパブリックアクセスをブロックするには、「すべてのパブリックアクセスのブロック」を参照してください。バケットアクセスを変更するには、「バケットアクセスの確認と変更」を参照してください。

IAM Access Analyzer for S3 が提供する情報

IAM Access Analyzer for S3 は、AWS アカウント 外からアクセスできるバケットに関する結果を提供します。[パブリックアクセスの検出結果] に表示されるバケットには、インターネット上の誰もがアクセスできます。IAM Access Analyzer for S3 がパブリックバケットを特定すると、リージョン内のパブリックバケット数を示す警告もページの上部に表示されます。[クロスアカウントアクセスの検出結果] にリストされているバケットは、組織外のアカウントを含む他の AWS アカウントと条件付きで共有されます。

IAM Access Analyzer for S3 は、バケットごとに次の情報を提供します。

  • バケット名

  • 共有方法 − バケットの共有方法 — バケットポリシー、バケット ACL、マルチリージョンアクセスポイントポリシー、またはアクセスポイントポリシーを通じて。マルチリージョンアクセスポイントおよびクロスアカウントアクセスポイントは、アクセスポイントの下に反映されます。バケットは、ポリシーと ACL の両方を通じて共有できます。バケットアクセスのソースを検索して確認する場合は、この列の情報をまず使用して、迅速で正確な是正措置を実行できます。

  • ステータス - バケット結果のステータス。IAM Access Analyzer for S3 には、すべてのパブリックバケットと共有バケットの検出結果が表示されます。

    • アクティブ − 結果は確認されていません。

    • アーカイブ済み − 結果は意図したとおりにレビューおよび確認されています。

    • すべて ‐ パブリックバケット、または他の AWS アカウント (組織外の AWS アカウント を含む) との共有バケットに関するすべての結果。

  • アクセスレベル − バケットに付与されているアクセス許可:

    • リスト − リソースを一覧表示します。

    • 読み取り − リソースの内容と属性を読み取ります (ただし、編集しません)。

    • 書き込み − リソースを作成、削除、または変更します。

    • アクセス許可 − リソースに対するアクセス許可を付与または変更します。

    • タグ付け − リソースに関連付けられているタグを更新します。

  • 外部プリンシパル - バケットにアクセスできる組織外の AWS アカウント。

  • リソースコントロールポリシー (RCP) の制限 - 該当する場合は、バケットに適用されるリソースコントロールポリシー (RCP)。詳細については、「リソースコントロールポリシー (RCP)」を参照してください。

すべてのパブリックアクセスのブロック

バケットへのすべてのアクセスをワンクリックでブロックする場合は、IAM Access Analyzer for S3 の [Block all public access] (すべてのパブリックアクセスをブロック) ボタンを使用できます。バケットへのすべてのパブリックアクセスをブロックすると、一切のパブリックアクセスが許可されません。特定の検証済みユースケースをサポートするためにパブリックアクセスが必要な場合を除き、バケットへのすべてのパブリックアクセスをブロックすることをお勧めします。すべてのパブリックアクセスをブロックする前に、アプリケーションがパブリックアクセスなしで正常に動作することを確認してください。

バケットへのすべてのパブリックアクセスをブロックしたくない場合は、Amazon S3 コンソールでブロックパブリックアクセス設定を編集して、バケットへの詳細なアクセスレベルを設定できます。詳細については、「Amazon S3 ストレージへのパブリックアクセスのブロック」を参照してください。

まれに、IAM Access Analyzer for S3 と Amazon S3 パブリックアクセスブロックの評価は、バケットがパブリックかどうかによって異なる場合があります。この動作は、Amazon S3 パブリックアクセスブロックが、パブリックアクセスの評価に加えて、アクションの存在についても検証を実行するために発生します。バケットポリシーに、Amazon S3 でサポートされていないアクション (s3:NotASupportedAction など) へのパブリックアクセスを許可する Action ステートメントが含まれているとします。この場合、Amazon S3 パブリックアクセスブロックはバケットをパブリックとして評価します。このようなステートメントは、アクションが後でサポートされるときにバケットをパブリックにする可能性があるためです。Amazon S3 パブリックアクセスブロックと IAM Access Analyzer for S3 の評価が異なる場合は、バケットポリシーを確認し、サポートされていないアクションを削除することをお勧めします。

IAM Access Analyzer for S3 を使用してバケットへのすべてのパブリックアクセスをブロックするには
  1. AWS Management Console にサインインし、Amazon S3 コンソール (https://console.aws.amazon.com/s3/) を開きます。

  2. 左側のナビゲーションペインの [ダッシュボード] で、[Access analyzer for S3 (S3 のアクセスアナライザー)] を選択します。

  3. IAM Access Analyzer for S3 で、バケットを選択します。

  4. [Block all public access (すべてのパブリックアクセスをブロック)] を選択します。

  5. バケットへのすべてのパブリックアクセスをブロックすることを確定するには、[Block all public access (bucket settings) (すべてのパブリックアクセスをブロック (バケット設定))] に「confirm」と入力します。

    Amazon S3 は、バケットへのすべてのパブリックアクセスをブロックします。バケットの検出結果のステータスが [解決済み] に更新され、バケットが IAM Access Analyzer for S3 のリストから消えます。解決済みのバケットを確認する場合は、IAM コンソールで IAM Access Analyzer を開きます。

バケットアクセスの確認と変更

パブリックアカウントや他の AWS アカウント アカウント (組織外のアカウントを含む) にアクセスを許可しない場合は、バケット ACL、バケットポリシー、マルチリージョンアクセスポイントポリシー、またはアクセスポイントポリシーを変更してバケットへのアクセスを削除できます。[Shared Through] 列には、バケットアクセスのすべてのソース (バケットポリシー、バケット ACL、アクセスポイントポリシー) が表示されます。マルチリージョンアクセスポイントおよびクロスアカウントアクセスポイントは、アクセスポイントの下に反映されます。

バケットポリシー、バケット ACL、マルチリージョンアクセスポイント、またはアクセスポイントポリシーを確認および変更するには
  1. https://console.aws.amazon.com/s3/ で Amazon S3 コンソールを開きます。

  2. ナビゲーションペインで、[S3 用 Access Analyzer] を選択します。

  3. パブリックアクセスまたは共有アクセスが、バケットポリシー、バケット ACL、マルチリージョンアクセスポイントポリシー、またはアクセスポイントポリシーを通じて許可されているかどうかを確認するには、[Shared through] 列を調べます。

  4. [バケット] で、バケットポリシー、バケット ACL、マルチリージョンアクセスポイントポリシー、またはアクセスポイントポリシーを変更または確認するバケットの名前を選択します。

  5. バケット ACL を変更または表示するには

    1. [Permissions] を選択します。

    2. [Access Control List] を選択します。

    3. バケット ACL を確認し、必要に応じて変更します。

      詳細については、ACL の設定 を参照してください。

  6. バケットポリシーを変更または確認するには

    1. [Permissions] を選択します。

    2. [バケットポリシー] を選択します。

    3. 必要に応じて、バケットポリシーを確認または変更します。

      詳細については、Amazon S3 コンソールを使用したバケットポリシーの追加 を参照してください。

  7. マルチリージョンアクセスポイントポリシーを確認または変更するには

    1. [マルチリージョンアクセスポイント] を選択します。

    2. マルチリージョンアクセスポイント名を選択します。

    3. 必要に応じて、マルチリージョンアクセスポイントポリシーを確認または変更します。

      詳細については、アクセス許可 を参照してください。

  8. アクセスポイントポリシーを確認または変更するには

    1. [汎用バケットの Access Points] または [ディレクトリバケットの Access Points] を選択します。

    2. アクセスポイント名を選択します。

    3. 必要に応じてアクセスを確認または変更します。

      詳細については、汎用バケットの Amazon S3 アクセスポイントの管理 を参照してください。

    バケット ACL、バケットポリシー、アクセスポイントポリシーを編集または削除してパブリックアクセスまたは共有アクセスを削除すると、バケットの結果のステータスが解決済みに更新されます。解決済みのバケットの検出結果は IAM Access Analyzer for S3 リストから消えますが、IAM Access Analyzer で表示できます。

バケットの結果のアーカイブ

バケットが、特定のユースケース (静的ウェブサイト、パブリックダウンロード、クロスアカウント共有など) をサポートするために、パブリックアカウントや他の AWS アカウント (組織外のアカウントを含む) へのアクセスを許可する場合は、バケットの結果をアーカイブできます。バケットの結果をアーカイブする場合、バケットをパブリックまたは共有にすることを確定して記録します。アーカイブされたバケットの検出結果は IAM Access Analyzer for S3 リストに残るため、どれがパブリックバケットまたは共有バケットであるかを常に把握できます。

IAM Access Analyzer for S3 でバケットの検出結果をアーカイブするには
  1. Amazon S3 コンソール (https://console.aws.amazon.com/s3/) を開きます。

  2. ナビゲーションペインで、[IAM Access Analyzer for S3] を選択します。

  3. IAM Access Analyzer for S3 で、アクティブなバケットを選択します。

  4. このバケットにパブリックアカウントや他の AWS アカウント (組織外のアカウントを含む) からアクセスすることを確定するには、[Archive] (アーカイブ) を選択します。

  5. confirm」と入力し、[アーカイブ] を選択します。

アーカイブされたバケットの結果の有効化

結果のアーカイブ後は、いつでも結果に再アクセスし、ステータスをアクティブに戻すことができます。この場合、バケットには別のレビューが必要になります。

アーカイブされたバケットの検出結果を IAM Access Analyzer for S3 でアクティブにするには
  1. https://console.aws.amazon.com/s3/ で Amazon S3 コンソールを開きます。

  2. ナビゲーションペインで、[Access analyzer for S3 (S3 のアクセスアナライザー)] を選択します。

  3. アーカイブされたバケットの結果を選択します。

  4. [Mark as active (アクティブとしてマーク)] を選択します。

結果の詳細の表示

検出結果の詳細情報を表示する必要がある場合は、IAM コンソールの [IAM Access Analyzer] でバケットの結果の詳細を開くことができます。

IAM Access Analyzer for S3 で検出結果の詳細を表示するには
  1. https://console.aws.amazon.com/s3/ で Amazon S3 コンソールを開きます。

  2. ナビゲーションペインで、[S3 用 Access Analyzer] を選択します。

  3. IAM Access Analyzer for S3 で、バケットを選択します。

  4. [View details] (詳細を表示する) をクリックします。

    結果の詳細が IAM コンソールの IAM Access Analyzer で開きます。

IAM Access Analyzer for S3 レポートのダウンロード

バケットの結果を CSV レポートとしてダウンロードし、監査目的に使用できます。レポートには、Amazon S3 コンソールの IAM Access Analyzer for S3 に表示される情報と同じ情報が含まれます。

レポートをダウンロードするには
  1. https://console.aws.amazon.com/s3/ で Amazon S3 コンソールを開きます。

  2. 左側のナビゲーションペインで、[Access analyzer for S3 (S3 のアクセスアナライザー)] を選択します。

  3. [リージョンフィルタ] で、[リージョン] を選択します。

    IAM Access Analyzer for S3 が更新され、選択したリージョンのバケットが表示されます。

  4. [レポートのダウンロード] を選択します。

    CSV レポートが生成され、コンピュータに保存されます。