翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon S3 バケットの露出の修正
注記
Security Hub はプレビューリリースであり、変更される可能性があります。
AWS Security Hub は、Amazon Simple Storage Service (S3) バケットの公開結果を生成できます。
Security Hub コンソールでは、公開結果に関連する Amazon S3 バケットとその識別情報が、検出結果の詳細のリソースセクションに一覧表示されます。プログラムにより、Security Hub API の GetFindingsV2オペレーションを使用してリソースの詳細を取得できます。
露出検出結果に関連するリソースを特定したら、不要なリソースを削除できます。不要なリソースを削除すると、露出プロファイルと AWS コストを削減できます。リソースが不可欠な場合は、以下の推奨される修復手順に従ってリスクを軽減します。修復トピックは、特性のタイプに基づいて分割されます。
1 つの公開結果には、複数の修復トピックで特定された問題が含まれます。逆に、1 つの修復トピックだけに対処することで、露出の検出結果に対処し、その重要度レベルを下げることができます。リスク修復へのアプローチは、組織の要件とワークロードによって異なります。
注記
このトピックで提供される修復ガイダンスでは、他の AWS リソースで追加の相談が必要になる場合があります。
目次
Amazon S3 バケットの設定ミス特性
Amazon S3 バケットの設定ミスの特徴と推奨される修復手順は次のとおりです。
Amazon S3 バケットのバージョニングが無効になっている
Amazon S3 バージョニングは、オブジェクトの複数のバリアントを同じバケットに保持するのに役立ちます。バージョニングを無効にすると、Amazon S3 は各オブジェクトの最新バージョンのみを保存します。つまり、オブジェクトが誤って、または悪意のある方法で削除または上書きされた場合、復元することはできません。バージョニングが有効なバケットは、データの不正な変更や削除が発生する可能性のある、偶発的な削除、アプリケーションの障害、ランサムウェア攻撃などのセキュリティインシデントに対する保護を提供します。セキュリティのベストプラクティスに従って、重要なデータを含むバケットに対してバージョニングを有効にすることをお勧めします。このデータが失われた場合、再作成は困難または不可能になります。
-
バージョニングを有効にする – バケットで Amazon S3 バージョニングを有効にするには、「Amazon Simple Storage Service ユーザーガイド」の「バケットでのバージョニングの有効化」を参照してください。バージョニングを有効にするときは、ストレージを管理するライフサイクルルールの実装を検討してください。バージョニングはオブジェクトの複数のコピーを保持するためです。
Amazon S3 バケットでオブジェクトロックが無効になっている
Amazon S3 オブジェクトロックは、Amazon S3 オブジェクトの write-once-read-many (WORM) モデルを提供し、一定期間または無期限に削除または上書きされるのを防ぎます。オブジェクトロックを無効にすると、オブジェクトがランサムウェアによる偶発的または悪意のある削除、変更、または暗号化に対して脆弱になる可能性があります。オブジェクトロックは、イミュータブルなデータストレージを要求する規制要件に準拠し、データの暗号化を試みる可能性のあるランサムウェアなどの高度な脅威から保護するために特に重要です。オブジェクトロックを有効にすると、データ保護の追加レイヤーとして保持ポリシーを適用し、重要なデータのイミュータブルなバックアップ戦略を作成できます。セキュリティのベストプラクティスに従って、オブジェクトの悪意のある変更を防ぐためにオブジェクトロックを有効にすることをお勧めします。
-
オブジェクトロックは新しいバケットの作成時にのみ有効にできるため、オブジェクトロックを有効にして新しいバケットを作成する必要があります。大規模な移行の場合は、バッチオペレーションを使用してオブジェクトを新しいバケットにコピーすることを検討してください。オブジェクトをロックする前に、バケットで Amazon S3 バージョニングとオブジェクトロックも有効にする必要があります。オブジェクトロックは新しいバケットでのみ有効にできるため、オブジェクトロックが有効になっている新しいバケットに既存のデータを移行する必要があります。Amazon S3 オブジェクトロックの設定 – バケットでオブジェクトロックを設定する方法については、「Amazon Simple Storage Service ユーザーガイド」の「Amazon S3Object Lock ConfiguringAmazon」を参照してください。オブジェクトロックを設定したら、環境に応じて適切な保持モードを選択します。
Amazon S3 バケットは保管時に AWS KMS キーで暗号化されません
Amazon S3 は、Amazon S3 マネージドキーによるサーバー側の暗号化を、すべての新しいバケットのデフォルトの暗号化レベルとして適用します。Amazon S3 マネージドキーは強力な暗号化保護を提供しますが、 AWS Key Management Service キーと同じレベルのアクセスコントロールおよび監査機能を提供するわけではありません。KMS キーを使用する場合、オブジェクトへのアクセスには、Amazon S3 バケットとオブジェクトを暗号化した KMS キーの両方に対するアクセス許可が必要です。これは、暗号化されたオブジェクトにアクセスできるユーザーをきめ細かく制御し、暗号化キーの使用状況を包括的に監査する必要がある機密データにとって特に重要です。セキュリティのベストプラクティスに従って、KMS キーを使用して機密データを含むバケットを暗号化するか、厳格なコンプライアンス要件がある環境で使用することをお勧めします。
-
Amazon S3 バケットキーを設定する
新しいオブジェクトに Amazon S3 バケットキーを使用するようにバケットを設定するには、「Amazon Simple Storage Service ユーザーガイド」の「SSE-KMS で Amazon S3 バケットキーを使用するようにバケットを設定する」を参照してください。既存のオブジェクトを暗号化する方法については、 AWS ストレージブログのAmazon S3バッチオペレーションによるオブジェクトの暗号化
」を参照してください。
AWS KMS 暗号化を実装するときは、次の点を考慮してください。
-
キー管理 – AWS マネージドキーとカスタマーマネージドキー (CMK) のどちらを使用するかを決定します。CMKsは、キーのライフサイクルと使用状況を完全に制御します。これら 2 種類のキーの違いの詳細については、「 AWS Key Management Service デベロッパーガイド」のAWS 「KMS キー」を参照してください。
-
キーローテーション – 追加のセキュリティ対策として、KMS キーの自動キーローテーションを有効にします。詳細については、「 AWS Key Management Service デベロッパーガイド」の「自動キーローテーションを有効にする」を参照してください。
バージョニングされた Amazon S3 バケットで多要素認証 (MFA) 削除が無効になっている
多要素認証 (MFA) 削除は、Amazon S3 バケットのセキュリティを強化します。破壊的な Amazon S3 オペレーションには多要素認証が必要です。MFA 削除を無効にすると、適切なアクセス許可を持つユーザーは、追加の認証チャレンジなしで、バケットのオブジェクトバージョンを完全に削除したり、バージョニングを停止したりできます。MFA 削除を有効にすると、データの不正または偶発的な削除から保護し、ランサムウェア攻撃、内部脅威、運用エラーに対する保護を強化できます。MFA 削除は、不正な削除から保護する必要がある重要なデータやコンプライアンスに敏感なデータを含むバケットにとって特に重要です。セキュリティのベストプラクティスに従って、Amazon S3 バケットの MFA を有効にすることをお勧めします。
-
MFA タイプを確認する
AWS は、次の MFA タイプをサポートしています。物理デバイスによる認証は通常、より厳格なセキュリティ保護を提供しますが、任意のタイプの MFA の使用は、MFA を無効にするよりも安全です。
-
リソースポリシーレベルで MFA を適用する
バケットポリシーで
aws:MultiFactorAuthAge
条件キーを使用して、機密性の高いオペレーションに MFA を要求します。詳細については、「Amazon Simple Storage Service ユーザーガイド」の「MFA の要求」を参照してください。 -
MFA を有効にする
MFA 削除を有効にするには、まず Amazon S3 バケットでバージョニングが有効になっていることを確認します。MFA 削除は、バージョニングが有効になっているバケットでのみサポートされます。Amazon S3 バージョニングを有効にする方法については、「Amazon Simple Storage Service ユーザーガイド」の「バケットでのバージョニングの有効化」を参照してください。MFA 削除は Amazon S3 コンソールでは有効にできません。Amazon S3 API または を使用する必要があります AWS CLI。詳細については、「Amazon Simple Storage Service ユーザーガイド」の「MFA 削除の設定」を参照してください。
Amazon S3 バケットは、他の AWS アカウントのプリンシパルにバケットのアクセス許可の変更を許可します。
Amazon S3 バケットポリシーは、バケットとオブジェクトへのアクセスを制御します。バケットポリシーが他の AWS アカウントのプリンシパルにバケットのアクセス許可の変更を許可する場合、権限のないユーザーはバケットを再設定できます。外部プリンシパル認証情報が侵害された場合、認証されていないユーザーはバケットを制御し、データ侵害やサービスの中断につながる可能性があります。標準のセキュリティ原則に従って、 AWS では、アクセス許可管理アクションを信頼できるプリンシパルのみに制限することをお勧めします。
-
バケットポリシーの確認と識別
公開で、ARN フィールドで Amazon S3 バケットを識別します。Amazon S3 コンソールでバケットを選択し、アクセス許可タブに移動してバケットポリシーを確認します。バケットにアタッチされているアクセス許可ポリシーを確認します。プリンシパルステートメントで示されているように、
s3:PutBucketPolicy, s3:PutBucketAcl, s3:DeleteBucketPolicy, s3:*
などのアクションを付与するポリシーステートメントや、アカウント外のプリンシパルへのアクセスを許可するポリシーステートメントを探します。 -
バケットポリシーを変更する
バケットポリシーを変更して、他の AWS アカウントに付与されたアクションを削除または制限します。
-
外部アカウントに許可管理アクションを付与するポリシーステートメントを削除します。
-
クロスアカウントアクセスが必要な場合は、広範なアクセス許可
(s3:*)
を、バケットアクセス許可管理を含まない特定のアクションに置き換えます。
バケットポリシーの変更については、Amazon S3 ユーザーガイド」の「Amazon S3 コンソールを使用したバケットポリシーの追加」を参照してください。 Amazon S3
-
Amazon S3 バケットの到達可能性特性
Amazon S3 バケットの到達可能性特性と推奨される修復手順は次のとおりです。
Amazon S3 バケットにはパブリックアクセスがあります
デフォルトでは、Amazon S3 バケットとオブジェクトはプライベートですが、さまざまな設定で公開できます。バケットポリシー、アクセスポイントポリシー、またはオブジェクトのアクセス許可を変更してパブリックアクセスを許可すると、機密データが公開されるリスクがあります。
-
バケットを評価する
組織のポリシー、コンプライアンス要件、またはデータ分類に基づいて、バケットをプライベートにできるかどうかを評価します。パブリックまたは他の にバケットアクセスを許可する予定がない場合は AWS アカウント、残りの修復手順に従ってください。
-
バケットをプライベートに設定する
Amazon S3 バケットのプライベートアクセスを設定するには、次のいずれかのオプションを選択します。
アカウントレベル – アカウントレベルの設定を使用してアカウント内のすべてのバケットのパブリックアクセスをブロックするには、「Amazon Simple Storage Service ユーザーガイド」の「アカウントのパブリックアクセスブロックの設定」を参照してください。
バケットレベル – 特定のバケットのパブリックアクセスをブロックするには、yourAmazon S3buckets」を参照してください。
バケット ACL またはポリシー – バケットアクセスコントロールリスト (ACL)、バケットポリシー、マルチリージョンアクセスポイント (MRAP) ポリシー、またはアクセスポイントポリシーを変更してバケットへのパブリックアクセスを削除するには、Amazon Simple Storage Service ユーザーガイドの「バケットアクセスの確認と変更」を参照してください。アカウントレベルまたはバケットレベルでパブリックアクセスをブロックする場合、それらのブロックはパブリックアクセスを許可するポリシーよりも優先されます。
Amazon S3 バケットにはパブリック読み取りアクセスがあります
パブリック読み取りアクセスを持つ Amazon S3 バケットを使用すると、インターネット上のすべてのユーザーがバケットの内容を表示できます。これはパブリックにアクセス可能なウェブサイトまたは共有リソースで必要になる場合がありますが、バケットに機密データが含まれている場合、セキュリティリスクが発生する可能性があります。パブリック読み取りアクセスは、不正な表示とダウンロードにつながる可能性があり、機密データがそれらのバケットに保存されると、データ侵害につながる可能性があります。は、標準のセキュリティ原則に従って、Amazon S3 バケットへのアクセスを必要なユーザーとシステムに制限 AWS することをお勧めします。
-
バケットレベルでパブリックアクセスをブロックする
Amazon S3 には、バケットポリシーや ACLs。詳細については、「Amazon Simple Storage Service ユーザーガイド」の「Amazon S3 ストレージへのパブリックアクセスをブロックする」を参照してください。パブリックアクセスをブロックしたら、バケットのアクセスコントロール設定を確認して、アクセス要件と一致していることを確認します。次に、Amazon S3 バケットポリシーを確認して、バケットにアクセスできるユーザーを明示的に定義します。バケットポリシーの例については、Amazon S3 バケットポリシーの例」を参照してください。
-
代替アクセス方法
パブリック読み取りアクセスが必要な場合は、次のより安全な代替方法を検討してください。
-
CloudFront – オリジンアクセスアイデンティティ (OAI) またはオリジンアクセスコントロール (OAC) で CloudFront を使用して、プライベート Amazon S3 バケットからの読み取りアクセスを許可します。別の方法として、Amazon S3 バケットへの直接アクセスを制限しながら、CloudFront を介してコンテンツをパブリックにアクセスできるようにします。詳細については、「Amazon Amazon S3オリジンへのアクセスの制限」を参照してください。 Amazon CloudFront
-
署名付き URLs – 特定のオブジェクトへの一時的なアクセスには、署名付き URLs を使用します。詳細については、AWSAmazon S3UserユーザーガイドのURLs を使用したオブジェクトの共有」を参照してください。
-
Amazon S3 バケットには書き込みアクセス権があります
パブリック書き込みアクセスを持つ Amazon S3 バケットを使用すると、インターネット上のすべてのユーザーがバケット内のオブジェクトをアップロード、変更、または削除できます。これにより、悪意のあるファイルのアップロード、既存のファイルの変更、データの削除など、重大なセキュリティリスクが発生します。パブリック書き込みアクセスは、攻撃者が悪用する可能性のあるセキュリティの脆弱性を作成します。標準のセキュリティ原則に従って、 AWS は Amazon S3 バケットへの書き込みアクセスを必要なユーザーとシステムのみに制限することをお勧めします。
-
アカウントおよびバケットレベルでパブリックアクセスをブロックする
Amazon S3 には、バケットポリシーや ACLs。詳細については、「Amazon Simple Storage Service ユーザーガイド」の「Amazon S3 ストレージへのパブリックアクセスをブロックする」を参照してください。
-
バケットポリシーの変更
パブリック書き込みアクセスを削除するより詳細なアプローチについては、バケットポリシーを確認してください。
s3:PutObject
、、s3:DeleteObject
または を検索できますs3:*
。バケットポリシーの管理の詳細については、Amazon Simple Storage Service ユーザーガイドの「Amazon Amazon S3のバケットポリシー」を参照してください。 -
代替アクセス方法 パブリック読み取りアクセスが必要な場合は、次のより安全な代替方法を検討してください。
-
CloudFront – オリジンアクセスアイデンティティ (OAI) またはオリジンアクセスコントロール (OAC) で CloudFront を使用して、プライベート Amazon S3 バケットからの読み取りアクセスを許可します。別の方法として、Amazon S3 バケットへの直接アクセスを制限しながら、CloudFront を介してコンテンツをパブリックにアクセスできるようにします。詳細については、「Amazon CloudFront デベロッパーガイド」の「Restricting access to an Amazon S3 origin」(Amazon S3 オリジンへのアクセスを制限する) を参照してください。
-
署名付き URLs – 特定のオブジェクトへの一時的なアクセスには、署名付き URLs を使用します。詳細については、「Amazon Simple Storage Service ユーザーガイド」のURLs を使用したオブジェクトの共有」を参照してください。
-
Amazon S3 アクセスポイントでパブリックアクセス設定が有効になっている
Amazon S3 アクセスポイントは、Amazon S3 バケット内の共有データセットへのカスタマイズされたアクセスを提供します。アクセスポイントのパブリックアクセスを有効にすると、インターネット上の誰でもデータにアクセスできます。は、標準のセキュリティ原則に従って、Amazon S3 アクセスポイントへのパブリックアクセスを制限することを AWS 推奨しています。
-
パブリックアクセスブロックを有効にして新しいアクセスポイントを作成する
Amazon S3 では、アクセスポイントの作成後にアクセスポイントのパブリックアクセス設定を変更することはできません。アクセスポイントの作成の詳細については、Amazon S3 ユーザーガイド」の「汎用バケットのアクセスポイントへのパブリックアクセスの管理」を参照してください。アクセスポイントへのパブリックアクセスの管理の詳細については、Amazon S3 ユーザーガイド」の「汎用バケットのアクセスポイントの作成」を参照してください。
Amazon S3 バケットの機密データ特性
Amazon S3 バケットの機密データ特性と推奨される修復手順は次のとおりです。
Amazon S3 バケットの機密データ特性
Macie が Amazon S3 バケット内の機密データを識別すると、即時の対応が必要な潜在的なセキュリティとコンプライアンスの露出を示します。
機密データには以下が含まれます。
-
認証情報
-
個人を特定できる情報
-
財務情報
-
保護が必要な機密コンテンツ
機密データが設定ミスや不正アクセスによって公開されると、コンプライアンス違反、データ侵害、なりすまし窃盗、または財務上の損失につながる可能性があります。セキュリティのベストプラクティスに従って、 は Amazon S3 バケット内のデータの適切な分類と機密データの継続的なモニタリング AWS を推奨します。
機密データのコントロールを実装する
露出の検出結果で、Open リソース を選択します。検出された機密データのタイプとバケット内の場所を確認します。Macie の検出結果の解釈については、Amazon Macie Macie ユーザーガイド」の「Macie の検出結果のタイプ」を参照してください。
検出された機密データのタイプに基づいて、適切なセキュリティコントロールを実装します。
-
バケットへのアクセスを制限する – バケットのアクセス許可を確認して、最小特権の原則に従っていることを確認します。IAM ポリシー、バケットポリシー、および ACLsを使用してアクセスを制限します。詳細については、Amazon S3 Identity and Access Management」を参照してください。
-
サーバー側の暗号化を有効にする – KMS キーによるサーバー側の暗号化を有効にして、保護を強化します。詳細については、Amazon Simple Storage Service ユーザーガイド AWS の「KMS キーによるサーバー側の暗号化の使用 (SSE-KMS)」を参照してください。
-
Use AWS Glue DataBrew – データの準備とクリーニングGlue DataBrewに使用します。詳細については、「 AWS Glue DataBrew デベロッパーガイド」の「 とは AWS Glue DataBrew」を参照してください。