Amazon Simple Storage Service コントロール - AWS Security Hub
[S3.1] S3 汎用バケットでは、パブリックアクセスのブロック設定が有効になっている必要があります[S3.2] S3 汎用バケットはパブリックリードアクセスをブロックする必要がある[S3.3] S3 汎用バケットは公開書き込みアクセスをブロックすべきである[S3.5] S3 汎用バケットには SSL を使用するリクエストが必要となるはずです。[S3.6] S3 汎用バケットポリシーでは、他者へのアクセスを制限する必要がある AWS アカウント[S3.7] S3 汎用バケットはクロスリージョンレプリケーションを使用するべき[S3.8] S3 汎用バケットはパブリックアクセスをブロックすべきである[S3.9] S3 汎用バケットではサーバーアクセスロギングが有効になっているはずです[S3.10] バージョニングが有効になっている S3 汎用バケットにはライフサイクル設定が必要です[S3.11] S3 汎用バケットでは、イベント通知が有効になっている必要があります[S3.12] S3 汎用バケットへのユーザーアクセスの管理には ACL を使用しないでください。[S3.13] S3 汎用バケットにはライフサイクル設定が必要です[S3.14] S3 汎用バケットではバージョニングが有効になっている必要があります[S3.15] S3 汎用バケットではオブジェクトロックが有効になっている必要があります[S3.17] S3 汎用バケットは、保存時に以下のように暗号化する必要があります AWS KMS keys[S3.19] S3 アクセスポイントでは、ブロックパブリックアクセス設定を有効にする必要があります[S3.20] S3 汎用バケットでは MFA 削除が有効になっている必要があります

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon Simple Storage Service コントロール

これらのコントロールは Amazon S3 リソースに関連しています。

これらのコントロールは、一部では使用できない場合があります AWS リージョン。詳細については、「リージョン別のコントロールの可用性」を参照してください。

[S3.1] S3 汎用バケットでは、パブリックアクセスのブロック設定が有効になっている必要があります

重要

2024 年 3 月 12 日に、このコントロールのタイトルが表示されているタイトルに変更されました。詳細については、「Security Hub コントロールの変更ログ」を参照してください。

関連要件:PCI DSS v3.2.1/1.2.1、PCI DSS v3.2.1/1.3.1、PCI DSS v3.2.1/1.3.2、PCI DSS v3.2.1/1.3.4、PCI DSS v3.2.1/1.3.4、PCI DSS v3.2.1/1.3.6、CIS AWS Foundations Benchmark v1.4.0/2.1.5、nist.800-53.r5 AC-21、nist.800-53.r5 AC-3、nist.800-53.r5 AC-3 (7)、nist.800-53.r5 AC-4、nist.800-53.r5 AC-4 (21)、nist.800-53.r5 AC-6、nist.800-53.r5 SC-7、nist.800-53.r5 SC-7 (11)、nist.800-53.r5 SC-7 (16)、nist.800-53.r5 53.r5 SC-7 (20)、nist.800-53.r5 SC-7 (21)、nist.800-53.r5 SC-7 (3)、nist.800-53.r5 SC-7 (4)、nist.800-53.r5 SC-7 (9)

カテゴリ: 保護 > セキュアなネットワーク設定

重要度:

リソースタイプ: AWS::::Account

AWS Config ルール: s3-account-level-public-access-blocks-periodic

スケジュールタイプ: 定期的

パラメータ:

  • ignorePublicAcls: true (カスタマイズ不可)

  • blockPublicPolicy: true (カスタマイズ不可)

  • blockPublicAcls: true (カスタマイズ不可)

  • restrictPublicBuckets: true (カスタマイズ不可)

このコントロールは、前述の Amazon S3 ブロックパブリックアクセス設定が S3 汎用バケットのアカウントレベルで構成されているかどうかを確認します。1 false つ以上のパブリックアクセスブロック設定がに設定されている場合、コントロールは失敗します。

いずれかの設定が false に設定されているか、またはいずれかが設定されていない場合、コントロールは失敗します。

Amazon S3 パブリックアクセスブロックは、オブジェクトにパブリックアクセスを一切与えないように、 AWS アカウント 全体または個々の S3 バケットレベルで制御できるように設計されています。パブリックアクセスは、アクセスコントロールリスト (ACL)、バケットポリシー、またはその両方からバケットおよびオブジェクトに付与されます。

S3 バケットをパブリックにアクセスできるように意図する場合を除き、アカウントレベルの Amazon S3 ブロックパブリックアクセス機能を設定する必要があります。

詳細については、「Amazon Simple Storage Service ユーザーガイド」の「Amazon S3 ブロックパブリックアクセスの使用」を参照してください。

修正

の Amazon S3 ブロックパブリックアクセスを有効にするには AWS アカウント、Amazon Simple Storage Service ユーザーガイドの 「アカウントのパブリックアクセスブロック設定の設定」を参照してください。

[S3.2] S3 汎用バケットはパブリックリードアクセスをブロックする必要がある

重要

2024 年 3 月 12 日に、このコントロールのタイトルは表示されているタイトルに変更されました。詳細については、「Security Hub コントロールの変更ログ」を参照してください。

関連する要件: PCI DSS v3.2.1/1.2.1、PCI DSS v3.2.1/1.3.1、PCI DSS v3.2.1/1.3.2、PCI DSS v3.2.1/1.3.6、PCI DSS v3.2.1/7.2.1、NIST.800-53.r5 AC-21、NIST.800-53.r5 AC-3、NIST.800-53.r5 AC-3(7)、NIST.800-53.r5 AC-4、NIST.800-53.r5 AC-4(21)、NIST.800-53.r5 AC-6、NIST.800-53.r5 SC-7、NIST.800-53.r5 SC-7(11)、NIST.800-53.r5 SC-7(16)、NIST.800-53.r5 SC-7(20)、NIST.800-53.r5 SC-7(21)、NIST.800-53.r5 SC-7(3)、NIST.800-53.r5 SC-7(4)、NIST.800-53.r5 SC-7(9)

カテゴリ: 保護 > セキュアなネットワーク設定

重要度: 非常事態

リソースタイプ: AWS::S3::Bucket

AWS Config ルール : s3-bucket-public-read-prohibited

スケジュールタイプ: 定期的および変更がトリガーされた場合

パラメータ: なし

このコントロールは、Amazon S3 汎用バケットがパブリックリードアクセスを許可しているかどうかをチェックします。これにより、ブロックパブリックアクセス設定、バケットポリシー、およびバケットアクセスコントロールリスト (ACL) を評価します。バケットがパブリックリードアクセスを許可している場合、コントロールは失敗します。

ユースケースによっては、インターネット上のすべてのユーザーが S3 バケットからの読み取りが必要な場合があります。しかし、そのような状況は稀です。データの整合性とセキュリティを確保するために、S3 バケットをパブリックに読み取り可能にしないでください。

修正

Amazon S3 バケットで公開読み取りアクセスをブロックするには、「Amazon Simple Storage Service ユーザーガイド」の「S3 バケットのブロックパブリックアクセス設定の構成」を参照してください。

[S3.3] S3 汎用バケットは公開書き込みアクセスをブロックすべきである

重要

2024 年 3 月 12 日に、このコントロールのタイトルは表示されているタイトルに変更されました。詳細については、「Security Hub コントロールの変更ログ」を参照してください。

関連する要件: PCI DSS v3.2.1/1.2.1、PCI DSS v3.2.1/1.3.1、PCI DSS v3.2.1/1.3.2、PCI DSS v3.2.1/1.3.4、PCI DSS v3.2.1/1.3.6、PCI DSS v3.2.1/7.2.1、NIST.800-53.r5 AC-21、NIST.800-53.r5 AC-3、NIST.800-53.r5 AC-3(7)、NIST.800-53.r5 AC-4、NIST.800-53.r5 AC-4(21)、NIST.800-53.r5 AC-6、NIST.800-53.r5 SC-7、NIST.800-53.r5 SC-7(11)、NIST.800-53.r5 SC-7(16)、NIST.800-53.r5 SC-7(20)、NIST.800-53.r5 SC-7(21)、NIST.800-53.r5 SC-7(3)、NIST.800-53.r5 SC-7(4)、NIST.800-53.r5 SC-7(9)

カテゴリ: 保護 > セキュアなネットワーク設定

重要度: 非常事態

リソースタイプ: AWS::S3::Bucket

AWS Config ルール : s3-bucket-public-write-prohibited

スケジュールタイプ: 定期的および変更がトリガーされた場合

パラメータ: なし

このコントロールは、Amazon S3 汎用バケットがパブリック書き込みアクセスを許可しているかどうかを確認します。これにより、ブロックパブリックアクセス設定、バケットポリシー、およびバケットアクセスコントロールリスト (ACL) を評価します。バケットがパブリック書き込みアクセスを許可している場合、コントロールは失敗します。

ユースケースによっては、インターネット上の全員が S3 バケットに書き込むことができる必要があります。しかし、そのような状況は稀です。データの整合性とセキュリティを確保するため、S3 バケットはパブリックに書き込み可能にしないでください。

修正

Amazon S3 バケットで公開書き込みアクセスをブロックするには、「Amazon Simple Storage Service ユーザーガイド」の「S3 バケットのブロックパブリックアクセス設定の構成」を参照してください。

[S3.5] S3 汎用バケットには SSL を使用するリクエストが必要となるはずです。

重要

2024 年 3 月 12 日に、このコントロールのタイトルは表示されているタイトルに変更されました。詳細については、「Security Hub コントロールの変更ログ」を参照してください。

関連要件:PCI DSS v3.2.1/4.1、CIS AWS Foundations Benchmark v1.4.0/2.1.2、NIST.800-53.r5 AC-17 (2)、NIST.800-53.r5 AC-4、nist.800-53.r5 IA-5 (1)、nist.800-53.r5 SC-12 (3)、nist.800-53.r5 SC-13、nist.800-53.r5 -53.r5 SC-23、nist.800-53.r5 SC-23 (3)、nist.800-53.r5 SC-7 (4)、nist.800-53.r5 SC-8、nist.800-53.r5 SC-8 (1)、nist.800-53.r5 SC-8 (2)、nist.800-53.r5 SI-7 (6)

カテゴリ: 保護 > セキュアなアクセス管理

重要度:

リソースタイプ: AWS::S3::Bucket

AWS Config ルール : s3-bucket-ssl-requests-only

スケジュールタイプ: 変更がトリガーされた場合

パラメータ: なし

このコントロールは、Amazon S3 汎用バケットに SSL を使用するリクエストを要求するポリシーがあるかどうかを確認します。バケットポリシーが SSL を使用するリクエストを要求していない場合、コントロールは失敗します。

S3 バケットには、条件キー aws:SecureTransport によって示される S3 リソースポリシーで HTTPS 経由のデータ送信のみを受け入れるために、すべてのリクエスト (Action: S3:*) を要求するポリシーを備える必要があります。

修正

Amazon S3 バケットポリシーを更新して非セキュアなトランスポートを拒否するには、「Amazon Simple Storage Service ユーザーガイド」の「Amazon S3 コンソールを使用したバケットポリシーの追加」を参照してください。

以下のポリシーに、同様のポリシーステートメントを追加します。awsexamplebucket を変更するバケットの名前で置き換えます。

{ "Id": "ExamplePolicy", "Version": "2012-10-17", "Statement": [ { "Sid": "AllowSSLRequestsOnly", "Action": "s3:*", "Effect": "Deny", "Resource": [ "arn:aws:s3:::awsexamplebucket", "arn:aws:s3:::awsexamplebucket/*" ], "Condition": { "Bool": { "aws:SecureTransport": "false" } }, "Principal": "*" } ] }

詳細については、Knowledge Center の記事「s3 -」 AWS Config ルールに準拠するにはどの S3 bucket-ssl-requests-only バケットポリシーを使用すればよいですか?を参照してください。 。

[S3.6] S3 汎用バケットポリシーでは、他者へのアクセスを制限する必要がある AWS アカウント

重要

2024 年 3 月 12 日に、このコントロールのタイトルが表示されているタイトルに変更されました。詳細については、「Security Hub コントロールの変更ログ」を参照してください。

関連する要件: NIST.800-53.r5 CA-9(1)、NIST.800-53.r5 CM-2

カテゴリ: 保護 > セキュアなアクセス管理 > 機密性の高いAPIオペレーションアクションを制限する

重要度:

リソースタイプ: AWS::S3::Bucket

AWS Config ルール: s3-bucket-blacklisted-actions-prohibited

スケジュールタイプ: 変更がトリガーされた場合

パラメータ:

  • blacklistedactionpatterns: s3:DeleteBucketPolicy, s3:PutBucketAcl, s3:PutBucketPolicy, s3:PutEncryptionConfiguration, s3:PutObjectAcl (カスタマイズ不可)

このコントロールは、Amazon S3 汎用バケットポリシーが、 AWS アカウント 他のプリンシパルが S3 バケット内のリソースに対して拒否されたアクションを実行することを禁止しているかどうかを確認します。バケットポリシーが別のプリンシパルに対して前述の 1 つ以上のアクションを許可している場合、コントロールは失敗します。 AWS アカウント

最小特権アクセスの実装は、セキュリティリスクおよびエラーの影響や悪意ある行動を減らす上での基礎となります。もしS3 バケットポリシーで外部アカウントからのアクセスを許可している場合、内部脅威または攻撃者によるデータの漏えいにつながる可能性があります。

blacklistedactionpatterns パラメータを使用すると、S3 バケットのルールを正常に評価できます。パラメータは、外部アカウントに対して blacklistedactionpatterns リストに含まれていないアクションパターンのアクセス許可を付与します。

修正

Amazon S3 バケットポリシーを更新してアクセス許可を削除するには、「Amazon Simple Storage Service ユーザーガイド」の「Amazon S3 コンソールを使用したバケットポリシーの追加」を参照してください。

[バケットポリシーを編集] ページのポリシー編集テキストボックスで、以下のいずれかのアクションを実行します。

  • 拒否されたアクションへのアクセス許可を別の  AWS アカウント に付与するステートメントを削除する。

  • 許可済みの拒否されたアクションをステートメントから削除する。

[S3.7] S3 汎用バケットはクロスリージョンレプリケーションを使用するべき

重要

2024 年 3 月 12 日に、このコントロールのタイトルは表示されているタイトルに変更されました。詳細については、「Security Hub コントロールの変更ログ」を参照してください。

関連する要件: PCI DSS v3.2.1/2.2、NIST.800-53.r5 AU-9(2)、NIST.800-53.r5 CP-10、NIST.800-53.r5 CP-6、NIST.800-53.r5 CP-6(1)、NIST.800-53.r5 CP-6(2)、NIST.800-53.r5 CP-9、NIST.800-53.r5 SC-36(2)、NIST.800-53.r5 SC-5(2)、NIST.800-53.r5 SI-13(5)

カテゴリ: 保護 > セキュアなアクセス管理

重要度:

リソースタイプ: AWS::S3::Bucket

AWS Config ルール:s3-bucket-replication-enabled

スケジュールタイプ: 変更がトリガーされた場合

パラメータ:

  • ReplicationType: CROSS-REGION (カスタマイズ不可)

このコントロールは、Amazon S3 汎用バケットでクロスリージョンレプリケーションが有効になっているかどうかを確認します。バケットでクロスリージョンレプリケーションが有効になっていない場合、コントロールは失敗します。

レプリケーションとは、同じまたは異なるバケット内のオブジェクトを自動的に非同期でコピーすることです。 AWS リージョンレプリケーションは、新しく作成されたオブジェクトと、レプリケート元バケットからレプリケート先バケットへのオブジェクトの更新をコピーします。 AWS  ベストプラクティスでは、同じ AWS アカウント が所有するレプリケート元バケットとレプリケート先バケットのレプリケーションを推奨しています。可用性に加えて、他のシステム強化構成も考慮する必要があります。

修正

Amazon S3 バケットのレプリケーションを有効にするには、「Amazon Simple Storage Service ユーザーガイド」の「同じアカウントが所有するレプリケート元バケットとレプリケート先バケットのレプリケーションの設定」を参照してください。[ソースバケット] で、[バケット内のすべてのオブジェクトに適用] を選択します。

[S3.8] S3 汎用バケットはパブリックアクセスをブロックすべきである

関連要件:CIS AWS Foundations Benchmark v1.4.0/2.1.5、NIST.800-53.r5 AC-21、NIST.800-53.r5 AC-3、NIST.800-53.r5 AC-3 (7)、nist.800-53.R5 AC-4 (21)、nist.800-53.r5 AC-4 (21)、nist.800-53.r5 AC-6、nist.800-53.r5 R5 SC-7、nist.800-53.r5 SC-7 (11)、nist.800-53.r5 SC-7 (16)、nist.800-53.r5 SC-7 (20)、nist.800-53.r5 SC-7 (21)、nist.800-53.r5 SC-7 (3)、nist.800-53.r5 SC-7 (4)、nist.800-53.r5 R5 SC-7 (9)

カテゴリ: 保護 > セキュアなアクセス管理 > アクセスコントロール

重要度:

リソースタイプ: AWS::S3::Bucket

AWS Config ルール : s3-bucket-level-public-access-prohibited

スケジュールタイプ: 変更がトリガーされた場合

パラメータ:

  • excludedPublicBuckets (カスタマイズ不可) - 既知の許可されているパブリック S3 バケット名のカンマ区切りリスト

このコントロールは、Amazon S3 汎用バケットがバケットレベルでパブリックアクセスをブロックしているかどうかを確認します。以下の設定のいずれかがに設定されている場合、コントロールは失敗しますfalse

  • ignorePublicAcls

  • blockPublicPolicy

  • blockPublicAcls

  • restrictPublicBuckets

S3 バケットレベルのブロックパブリックアクセスは、オブジェクトがパブリックアクセスできないようにコントロールを提供します。パブリックアクセスは、アクセスコントロールリスト (ACL)、バケットポリシー、またはその両方からバケットおよびオブジェクトに付与されます。

S3 バケットをパブリックにアクセスできるように意図する場合を除き、バケットレベルの Amazon S3 ブロックパブリックアクセス機能を設定する必要があります。

修正

バケットレベルでパブリックアクセスを削除する方法については、「Amazon S3 ユーザーガイド」の「Amazon S3 ストレージへのパブリックアクセスのブロック」を参照してください。

[S3.9] S3 汎用バケットではサーバーアクセスロギングが有効になっているはずです

重要

2024 年 3 月 12 日に、このコントロールのタイトルが表示されているタイトルに変更されました。詳細については、「Security Hub コントロールの変更ログ」を参照してください。

関連する要件: NIST.800-53.r5 AC-2(4)、NIST.800-53.r5 AC-4(26)、NIST.800-53.r5 AC-6(9)、NIST.800-53.r5 AU-10、NIST.800-53.r5 AU-12、NIST.800-53.r5 AU-2、NIST.800-53.r5 AU-3、NIST.800-53.r5 AU-6(3)、NIST.800-53.r5 AU-6(4)、NIST.800-53.r5 CA-7、NIST.800-53.r5 SC-7(9)、NIST.800-53.r5 SI-3(8)、NIST.800-53.r5 SI-4(20)、NIST.800-53.r5 SI-7(8)

カテゴリ: 識別 > ログ記録

重要度:

リソースタイプ: AWS::S3::Bucket

AWS Config ルール : s3-bucket-logging-enabled

スケジュールタイプ: 変更がトリガーされた場合

パラメータ: なし

このコントロールは、Amazon S3 汎用バケットのサーバーアクセスロギングが有効になっているかどうかを確認します。サーバーアクセスロギングが有効になっていない場合、コントロールは失敗します。ログ記録を有効にすると、Amazon S3 は、ソースバケットのアクセスログを選択されたターゲットバケットに配信します。 AWS リージョン ターゲットバケットはソースバケットと同じでなければならず、デフォルトの保持期間が設定されていない必要があります。ターゲットのログ記録バケットは、サーバーアクセスのログ記録を有効にする必要がないため、このバケットの結果は非表示にします。

サーバーアクセスのログ記録には、バケットに対するリクエストの詳細を提供します。サーバーアクセスログは、セキュリティとアクセス監査に役立ちます。詳細については、「Amazon S3 のセキュリティベストプラクティス: Amazon S3 サーバーアクセスログを有効にします」を参照してください。

修正

Amazon S3 のサーバーアクセスのログ記録を有効にするには、「Amazon S3 ユーザーガイド」の「Amazon S3 サーバーアクセスログの有効化」を参照してください。

[S3.10] バージョニングが有効になっている S3 汎用バケットにはライフサイクル設定が必要です

重要

2024 年 3 月 12 日に、このコントロールのタイトルが表示されているタイトルに変更されました。また、Security Hub は 2024 年 3 AWS 月にこのコントロールを基礎セキュリティベストプラクティス標準から削除する予定ですが、NIST SP 800-53 Rev. 5 標準には引き続き含まれます。詳細については、「Security Hub コントロールの変更ログ」を参照してください。

関連する要件: NIST.800-53.r5 CP-10、NIST.800-53.r5 CP-6(2)、NIST.800-53.r5 CP-9、NIST.800-53.r5 SC-5(2)、NIST.800-53.r5 SI-13(5)

カテゴリ: 識別 > ログ記録

重要度:

リソースタイプ: AWS::S3::Bucket

AWS Config ルール : s3-version-lifecycle-policy-check

スケジュールタイプ: 変更がトリガーされた場合

パラメータ: なし

このコントロールは、Amazon S3 汎用バージョニングバケットにライフサイクル設定があるかどうかを確認します。バケットにライフサイクル設定がない場合、コントロールは失敗します。

S3 バケットのライフサイクル設定を作成して、オブジェクトの存続期間中に Amazon S3 に実行させたいアクションを定義することをおすすめします。

修正

Amazon S3 バケットでのライフサイクルの設定の詳細については、「バケットのライフサイクル設定の指定」と「ストレージのライフサイクルの管理」を参照してください。

[S3.11] S3 汎用バケットでは、イベント通知が有効になっている必要があります

重要

2024 年 3 月 12 日に、このコントロールのタイトルが表示されているタイトルに変更されました。また、Security Hub は 2024 年 3 AWS 月にこのコントロールを基礎セキュリティベストプラクティス標準から削除する予定ですが、NIST SP 800-53 Rev. 5 標準には引き続き含まれます。詳細については、「Security Hub コントロールの変更ログ」を参照してください。

関連する要件: NIST.800-53.r5 CA-7、NIST.800-53.r5 SI-3(8)、NIST.800-53.r5 SI-4、NIST.800-53.r5 SI-4(4)

カテゴリ: 識別 > ログ記録

重要度:

リソースタイプ: AWS::S3::Bucket

AWS Config ルール : s3-event-notifications-enabled

スケジュールタイプ: 変更がトリガーされた場合

パラメータ:

パラメータ 説明 [Type] (タイプ) 許可されているカスタム値 Security Hub のデフォルト値

eventTypes

推奨される S3 イベントタイプのリスト

EnumList (最大 28 項目)

s3:IntelligentTiering, s3:LifecycleExpiration:*, s3:LifecycleExpiration:Delete, s3:LifecycleExpiration:DeleteMarkerCreated, s3:LifecycleTransition, s3:ObjectAcl:Put, s3:ObjectCreated:*, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectCreated:Copy, s3:ObjectCreated:Post, s3:ObjectCreated:Put, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:*, s3:ObjectRestore:Completed, s3:ObjectRestore:Delete, s3:ObjectRestore:Post, s3:ObjectTagging:*, s3:ObjectTagging:Delete, s3:ObjectTagging:Put, s3:ReducedRedundancyLostObject, s3:Replication:*, s3:Replication:OperationFailedReplication, s3:Replication:OperationMissedThreshold, s3:Replication:OperationNotTracked, s3:Replication:OperationReplicatedAfterThreshold, s3:TestEvent

デフォルト値なし

このコントロールは、Amazon S3 汎用バケットで S3 イベント通知が有効になっているかどうかを確認します。S3 イベント通知がバケットで有効になっていない場合、コントロールは失敗します。eventTypesパラメータにカスタム値を指定した場合、指定されたタイプのイベントに対してイベント通知が有効になっている場合にのみコントロールが渡されます。

S3 イベント通知を有効にすると、S3 バケットに影響する特定のイベントが発生したときにアラートを受信します。例えば、オブジェクトの作成、オブジェクトの削除、オブジェクトの復元を通知を受けることができます。これらの通知により、不正なデータアクセスにつながる可能性のある偶発的または意図的な変更を関連チームに警告することができます。

修正

S3 バケットおよびオブジェクトの変更を、検出する方法の詳細については、「Amazon S3 ユーザーガイド」の「Amazon S3 イベント通知」を参照してください。

[S3.12] S3 汎用バケットへのユーザーアクセスの管理には ACL を使用しないでください。

重要

2024 年 3 月 12 日に、このコントロールのタイトルが表示されているタイトルに変更されました。詳細については、「Security Hub コントロールの変更ログ」を参照してください。

関連する要件: NIST.800-53.r5 AC-2(1)、NIST.800-53.r5 AC-3、NIST.800-53.r5 AC-3(15)、NIST.800-53.r5 AC-3(7)、NIST.800-53.r5 AC-6

カテゴリ: 保護 > セキュアなアクセス管理 > アクセスコントロール

重要度:

リソースタイプ: AWS::S3::Bucket

AWS Config ルール : s3-bucket-acl-prohibited

スケジュールタイプ: 変更がトリガーされた場合

パラメータ: なし

このコントロールは、Amazon S3 汎用バケットがアクセスコントロールリスト (ACL) を使用してユーザー権限を提供しているかどうかを確認します。ACL がバケットのユーザーアクセスを管理するように設定されている場合、コントロールは失敗します。

ACL は、IAM よりも前のレガシーアクセスコントロールメカニズムです。ACL の代わりに S3 バケットポリシーまたは AWS Identity and Access Management (IAM) ポリシーを使用して S3 バケットへのアクセスを管理することをお勧めします。

修正

このコントロールに合格するには、S3 バケットの ACL を無効にする必要があります。手順については、「Amazon Simple Storage Service ユーザーガイド」の「オブジェクトの所有権の制御とバケットの ACL の無効化」を参照してください。

S3 バケットポリシーを作成するには、「Amazon S3 コンソールを使用したバケットポリシーの追加」を参照してください。S3 バケットに IAM ユーザーポリシーを作成するには、「ユーザーポリシーを使用したバケットへのアクセスの制御」を参照してください。

[S3.13] S3 汎用バケットにはライフサイクル設定が必要です

重要

2024 年 3 月 12 日に、このコントロールのタイトルが表示されているタイトルに変更されました。詳細については、「Security Hub コントロールの変更ログ」を参照してください。

関連する要件: NIST.800-53.r5 CP-10、NIST.800-53.r5 CP-6(2)、NIST.800-53.r5 CP-9、NIST.800-53.r5 SC-5(2)、NIST.800-53.r5 SI-13(5)

カテゴリ: 保護 > データ保護

重要度:

リソースタイプ: AWS::S3::Bucket

AWS Config ルール : s3-lifecycle-policy-check

スケジュールタイプ: 変更がトリガーされた場合

パラメータ:

パラメータ 説明 [Type] (タイプ) 許可されているカスタム値 Security Hub のデフォルト値

targetTransitionDays

オブジェクトが、その作成後、指定されたストレージクラスに移行するまでの日数

整数

136500

デフォルト値なし

targetExpirationDays

オブジェクトが作成されてから削除されるまでの日数

整数

136500

デフォルト値なし

targetTransitionStorageClass

送信先 S3 ストレージクラスのタイプ

列挙型

STANDARD_IA, INTELLIGENT_TIERING, ONEZONE_IA, GLACIER, GLACIER_IR, DEEP_ARCHIVE

デフォルト値なし

このコントロールは、Amazon S3 汎用バケットにライフサイクル設定があるかどうかを確認します。バケットにライフサイクル設定がない場合、コントロールは失敗します。前述の 1 つ以上のパラメータにカスタム値を指定したときは、指定されたストレージクラス、削除時間、または移行時間がポリシーに含まれている場合にのみコントロールが成功します。

S3 バケットのライフサイクル設定を作成すると、オブジェクトの存続期間中に Amazon S3 に実行させたいアクションを定義します。例えば、オブジェクトを別のストレージクラスに移行させる、アーカイブする、あるいは指定した期間後に削除する、といったことが可能です。

修正

Amazon S3 バケットでライフサイクルポリシーを設定する方法の詳細については、「Amazon S3 ユーザーガイド」の「バケットのライフサイクル設定の指定」および「ストレージのライフサイクルの管理」を参照してください。

[S3.14] S3 汎用バケットではバージョニングが有効になっている必要があります

重要

2024 年 3 月 12 日に、このコントロールのタイトルが表示されているタイトルに変更されました。詳細については、「Security Hub コントロールの変更ログ」を参照してください。

カテゴリ: 保護 > データ保護 > データ削除保護

関連する要件: NIST.800-53.r5 AU-9(2)、NIST.800-53.r5 CP-10、NIST.800-53.r5 CP-6、NIST.800-53.r5 CP-6(1)、NIST.800-53.r5 CP-6(2)、NIST.800-53.r5 CP-9、NIST.800-53.r5 SC-5(2)、NIST.800-53.r5 SI-12、NIST.800-53.r5 SI-13(5)

重要度:

リソースタイプ: AWS::S3::Bucket

AWS Config ルール : s3-bucket-versioning-enabled

スケジュールタイプ: 変更がトリガーされた場合

パラメータ: なし

このコントロールは、Amazon S3 汎用バケットのバージョニングが有効になっているかどうかを確認します。バケットのバージョニングが停止されている場合、コントロールは失敗します。

バージョニングにより、同じ S3 バケット内でオブジェクトの複数のバリアントを保持します。バージョニングを使用して、S3 バケットに保存されたオブジェクトの旧バージョンを保存、取得、復元することができます。バージョニングによって、意図しないユーザーアクションとアプリケーション障害から復旧できます。

ヒント

バージョニングによりバケット内のオブジェクト数が増えたら、ルールに基づいてバージョニングされたオブジェクトを自動的にアーカイブまたは削除するようにライフサイクル設定を設定できます。詳細については、「バージョニングされたオブジェクトの Amazon S3 ライフサイクル管理」を参照してください。

修正

S3 バケットでバージョニングを使用するには、「Amazon S3 ユーザーガイド」の「バケットでのバージョニングの有効化」を参照してください。

[S3.15] S3 汎用バケットではオブジェクトロックが有効になっている必要があります

重要

2024 年 3 月 12 日に、このコントロールのタイトルが表示されているタイトルに変更されました。詳細については、「Security Hub コントロールの変更ログ」を参照してください。

カテゴリ: 保護 > データ保護 > データ削除保護

関連する要件: NIST.800-53.r5 CP-6(2)

重要度:

リソースタイプ: AWS::S3::Bucket

AWS Config ルール:s3-bucket-default-lock-enabled

スケジュールタイプ: 変更がトリガーされた場合

パラメータ:

パラメータ 説明 [Type] (タイプ) 許可されているカスタム値 Security Hub のデフォルト値

mode

S3 Object Lock の保持モード

列挙型

GOVERNANCE, COMPLIANCE

デフォルト値なし

このコントロールは、Amazon S3 汎用バケットでオブジェクトロックが有効になっているかどうかを確認します。バケットのオブジェクトロックが有効になっていない場合、コントロールは失敗します。mode パラメータにカスタム値を指定したときは、S3 Object Lock が指定された保持モードを使用する場合にのみコントロールが成功します。

S3 オブジェクトロックを使用すると、 write-once-read-many (WORM) モデルを使用してオブジェクトを保存できます。Object Lock により、S3 バケットのオブジェクトが削除または上書きされることを、一定期間または無期限に防止できます。S3 Object Lock を使用して、WORM ストレージを必要とする規制要件を満たしたり、オブジェクトの変更や削除に対する保護レイヤーを追加したりできます。

修正

新規および既存の S3 バケットの Object Lock を設定するには、「Amazon S3 ユーザーガイド」の「オブジェクトロックの設定」を参照してください。

[S3.17] S3 汎用バケットは、保存時に以下のように暗号化する必要があります AWS KMS keys

重要

2024 年 3 月 12 日に、このコントロールのタイトルが表示されているタイトルに変更されました。詳細については、「Security Hub コントロールの変更ログ」を参照してください。

カテゴリ: 保護 > データ保護 > 保管中のデータの暗号化

関連する要件: NIST.800-53.r5 SC-12(2)、NIST.800-53.r5 CM-3(6)、NIST.800-53.r5 SC-13、NIST.800-53.r5 SC-28、NIST.800-53.r5 SC-28(1)、NIST.800-53.r5 SC-7(10)、NIST.800-53.r5 CA-9(1)、NIST.800-53.r5 SI-7(6)、NIST.800-53.r5 AU-9

重要度:

リソースタイプ: AWS::S3::Bucket

AWS Config ルール:s3-default-encryption-kms

スケジュールタイプ: 変更がトリガーされた場合

パラメータ: なし

このコントロールは、Amazon S3 汎用バケットが AWS KMS key (SSE-KMS または DSSE-KMS) で暗号化されているかどうかを確認します。バケットがデフォルト暗号化 (SSE-S3) で暗号化されている場合、コントロールは失敗します。

サーバー側の暗号化 (SSE)とは、データを受信するアプリケーションまたはサービスによって、送信先でデータを暗号化することです。特に指定しない限り、デフォルトでは、S3 バケットはサーバー側の暗号化に Amazon S3 マネージドキー (SSE-S3) を使用します。ただし、制御を強化するために、代わりに AWS KMS keys (SSE-KMS または DSSE-KMS) によるサーバー側の暗号化を使用するようにバケットを設定することもできます。Amazon S3 は、 AWS データセンターのディスクにデータを書き込む際にオブジェクトレベルでデータを暗号化し、アクセス時に自動的に復号化します。

修正

SSE-KMS を使用して S3 バケットを暗号化するには、Amazon S3 ユーザーガイドの「AWS KMS (SSE-KMS) によるサーバー側の暗号化の指定」を参照してください。DSSE-KMS を使用して S3 バケットを暗号化するには、Amazon S3 ユーザーガイドの「AWS KMS keys (DSSE-KMS) による二重レイヤーサーバー側暗号化の指定」を参照してください。

[S3.19] S3 アクセスポイントでは、ブロックパブリックアクセス設定を有効にする必要があります

関連する要件: NIST.800-53.r5 AC-21、NIST.800-53.r5 AC-3、NIST.800-53.r5 AC-3(7)、NIST.800-53.r5 AC-4、NIST.800-53.r5 AC-4(21)、NIST.800-53.r5 AC-6、NIST.800-53.r5 SC-7、NIST.800-53.r5 SC-7(11)、NIST.800-53.r5 SC-7(16)、NIST.800-53.r5 SC-7(20)、NIST.800-53.r5 SC-7(21)、NIST.800-53.r5 SC-7(3)、NIST.800-53.r5 SC-7(4)、NIST.800-53.r5 SC-7(9)

カテゴリ: 保護 > セキュアなアクセス管理 > パブリックアクセスが不可能なリソース

重要度: 非常事態

リソースタイプ: AWS::S3::AccessPoint

AWS Config ルール:s3-access-point-public-access-blocks

スケジュールタイプ: 変更がトリガーされた場合

パラメータ: なし

このコントロールは、Amazon S3 アクセスポイントでブロックパブリックアクセス設定が有効になっているかどうかをチェックします。アクセスポイントのブロックパブリックアクセス設定が有効になっていない場合、コントロールは失敗します。

Amazon S3 パブリックアクセスブロック機能は、アカウント、バケット、アクセスポイントの 3 つのレベルで S3 リソースへのアクセスを管理するのに役立ちます。各レベルの設定は個別に構成できるため、データに対して異なるレベルのパブリックアクセス制限を設定できます。アクセスポイントの設定で、より高いレベル (アカウントレベルまたはアクセスポイントに割り当てられたバケット) のより制限的な設定を個別にオーバーライドすることはできません。むしろ、アクセスポイントレベルの設定は付加的です。つまり、他のレベルの設定を補完し、連携して機能します。S3 アクセスポイントをパブリックにアクセス可能にする予定がない限り、ブロックパブリックアクセス設定を有効にする必要があります。

修正

Amazon S3 は、現在、アクセスポイントの作成後におけるアクセスポイントのブロックパブリックアクセス設定の変更をサポートしていません。デフォルトでは、新しいアクセスポイントを作成すると、すべてのブロックパブリックアクセス設定が有効になります。これらの設定を特に無効にする必要がある場合を除いて、すべての設定を有効にしておくことをお勧めします。詳細については、「Amazon Simple Storage Service ユーザーガイド」の「アクセスポイントへのパブリックアクセスの管理」を参照してください。

[S3.20] S3 汎用バケットでは MFA 削除が有効になっている必要があります

関連要件:CIS AWS Foundations Benchmark v1.4.0、NIST.800-53.r5 CA-9 (1)、NIST.800-53.R5 CM-2、NIST.800-53.R5 CM-2 (2)、NIST.800-53.r5 CM-3、nist.800-53.r5 SC-5 (2)

カテゴリ: 保護 > データ保護 > データ削除保護

重要度:

リソースタイプ: AWS::S3::Bucket

AWS Config ルール:s3-bucket-mfa-delete-enabled

スケジュールタイプ: 変更がトリガーされた場合

パラメータ: なし

このコントロールは、Amazon S3 汎用バケットで多要素認証 (MFA) 削除が有効になっているかどうかを確認します。バケットで MFA 削除が有効になっていない場合、コントロールは失敗します。

Amazon S3 バケットで S3 バージョニングを行うときに、MFA 削除が有効になるようにバケットを設定すれば、セキュリティをさらに強化できます。この設定を行うと、バケット所有者は、特定のバージョンを削除したりバケットのバージョニング状態を変更したりするリクエストに、2 つの認証形式を含めることが必要になります。MFA 削除は、セキュリティ認証情報に不正なアクセスがあった場合にセキュリティを強化します。また、MFA 削除は、削除アクションを開始したユーザーに MFA コードを使って MFA デバイスの物理的所有を証明するように要求したり、削除アクションに摩擦とセキュリティのレイヤーをさらに追加したりすることで、バケットの偶発的な削除を防ぎます。

注記

MFA 削除機能には、依存関係としてバケットのバージョニングが必要です。バケットのバージョニングとは、同じバケット内で S3 オブジェクトの複数のバリエーションを保持する方法です。さらに、ルートユーザーとしてログインしているバケット所有者のみが、MFA 削除を有効にして、S3 バケットで削除アクションを実行できます。

修正

S3 バージョニングを有効にして、バケットで MFA 削除を設定するには、「Amazon Simple Storage Service ユーザーガイド」の「MFA 削除の設定」を参照してください。