S3 のアクセスアナライザーを使用したバケットアクセスの確認 - Amazon Simple Storage Service

S3 のアクセスアナライザーを使用したバケットアクセスの確認

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

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

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

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

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

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

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

Access Analyzer for S3 はどのような情報を提供しますか?

Access Analyzer for S3 は、AWS アカウント外からアクセスできるバケットに関する結果を提供します。[Buckets with public access (パブリックアクセスを許可するバケット)] に表示されるバケットには、インターネットの任意のユーザーがアクセスできます。Access Analyzer for S3 がパブリックバケットを特定すると、リージョン内のパブリックバケット数を示す警告もページの上部に表示されます。第三者を含む、他の AWS アカウント からアクセスのあるバケット — サード・パーティーを含む AWS アカウントでリスト化したバケットは、組織外のアカウントを含む他の AWS アカウント という条件付きで共有されます。

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

  • [Bucket name] (バケット名)

  • Access Analyzer によって検出 − Access Analyzer for S3 がパブリックまたは共有バケットアクセスを検出したとき。

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

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

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

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

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

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

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

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

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

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

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

Access Analyzer for S3 の有効化

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

  1. 必要なアクセス権限を付与します。

    詳細については、IAM ユーザーガイドAccess Analyzer の使用に必要なアクセス許可 を参照してください。

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

    Access Analyzer for S3 には、アカウントレベルのアナライザーが必要です。Access Analyzer for S3 を使用するには、信頼ゾーンとしてアカウントを持つアナライザーを作成する必要があります。詳細については、IAM ユーザーガイドAccess Analyzer の有効化 を参照してください。

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

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

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

まれに、Amazon S3 のパブリックアクセスブロックの評価でパブリックと報告されたバケットが Access Analyzer for S3 では何も報告されない場合があります。これは、Amazon S3 のパブリックアクセスブロックでは、ポリシーの現在のアクションだけでなく、後で追加される可能性があるアクションについても、バケットがパブリックになるかどうかが確認されるためです。一方、Access Analyzer for S3 は、アクセスの状態の評価で Amazon S3 サービスに指定されている現在のアクションのみを分析します。

Access Analyzer for S3 を使用してバケットへのすべてのパブリックアクセスをブロックするには

  1. AWS Management Console にサインインし、Amazon S3 コンソール (https://console.aws.amazon.com/s3/) を開きます。

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

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

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

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

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

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

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

バケットポリシー、バケット ACL、マルチリージョンアクセスポイント、またはアクセスポイントポリシーを確認および変更するには

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

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

  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] (アクセスポイント) を選択します。

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

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

      詳細については、Amazon S3 コンソールでの Amazon S3 アクセスポイントの使用 を参照してください。

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

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

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

Access Analyzer for S3 でバケットの結果をアーカイブするには

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

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

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

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

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

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

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

アーカイブされたバケットの結果を 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 でバケットの結果の詳細を開くことができます。

Access Analyzer for S3 で結果の詳細を表示するには

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

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

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

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

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

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

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

レポートをダウンロードするには

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

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

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

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

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

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