SEC08-BP04 アクセスコントロールを適用する - AWS Well-Architected フレームワーク

SEC08-BP04 アクセスコントロールを適用する

保管中のデータを保護するには、分離やバージョニングなどのメカニズムを使用してアクセス制御を実施します。最小特権と条件付きアクセスコントロールを適用します。データへパブリックアクセスが付与されるのを防止します。

期待される成果: そのデータについて知る必要がある、許可されたユーザーのみがデータにアクセスできるようにします。定期的なバックアップとバージョニングでデータを保護し、意図しない、または不注意によるデータの改ざんや削除を防止します。重要なデータを他のデータから分離して、機密性とデータ整合性を保護します。

一般的なアンチパターン:

  • 機密度要件と分類の異なるデータを一緒に保管する。

  • 復号化キーに、過度に寛容なアクセス許可を使用する。

  • データを不適切に分類する。

  • 重要なデータの詳細なバックアップを保持しない。

  • 本番データへの永続的なアクセスを提供する。

  • データアクセスを監査することも、定期的にアクセス許可を審査することもしていない。

このベストプラクティスを活用しない場合のリスクレベル:

実装のガイダンス

保管中のデータの保護は、データの整合性、機密性、規制要件の遵守を維持するうえで重要です。これを実現するために、アクセスコントロール、分離、条件付きアクセス、バージョニングなど、複数のコントロールを実装できます。

アクセスコントロールは最小特権の原則で適用できます。これにより、ユーザーとサービスがタスクの実行に必要とするアクセス許可のみが提供されます。これには、暗号化キーへのアクセスが含まれます。AWS Key Management Service (AWS KMS) ポリシーを確認して、付与するアクセスレベルが適切であり、関連する条件が適用されることを確認します。

レベルごとに異なる AWS アカウント を使用して、異なる分類レベルに基づいてデータを分離し、AWS Organizations を使用してこれらのアカウントを管理できます。この分離は、不正アクセスを防止し、データ漏洩のリスクを最小限に抑えるのに役立ちます。

Amazon S3 バケットのポリシーで付与されるアクセスのレベルを定期的にレビューします。絶対に必要な場合を除き、公開で読み取り可能なバケットや書き込み可能なバケットは使用しないでください。AWS Config を使用して公開されているバケットを検出し、Amazon CloudFront を使用して Amazon S3 からコンテンツを提供することを検討します。パブリックアクセスを許可してはならないバケットが、パブリックアクセスを防ぐように正しく構成されていることを確認します。

Amazon S3 に保存されている重要なデータのバージョニングと Object Lock メカニズムを実装します。Amazon S3 バージョニングは、以前のバージョンのオブジェクトを保存して、誤って削除または上書きされたデータを復元します。Amazon S3 Object Lockは、オブジェクトの必須アクセスコントロールを提供します。これにより、ロックの有効期限が切れるまで、ルートユーザーがオブジェクトを削除または上書きできなくなります。さらに、Amazon S3 Glacier ボールトロックは、Amazon S3 Glacier に保存されているアーカイブにも同様の機能を提供します。

実装手順

  1. 最小特権の原則でアクセスコントロールを適用します

    • ユーザーとサービスに付与されたアクセス許可を確認し、タスクを実行するために必要なアクセス許可のみを持っていることを確認します。

    • AWS Key Management Service (AWS KMS) ポリシーを確認し、暗号化キーへのアクセスを確認します。

  2. 異なる分類レベルに基づいてデータを分離します

    • データ分類レベルごとに異なる AWS アカウント を使用します。

    • AWS Organizations を使用してこれらのアカウントを管理します。

  3. Amazon S3 バケットとオブジェクトのアクセス許可を確認します

    • Amazon S3 バケットのポリシーで付与されるアクセスのレベルを定期的にレビューします。

    • 絶対に必要な場合を除き、公開で読み取り可能なバケットや書き込み可能なバケットは使用しないでください。

    • AWS Config を使用して公開されているバケットを検出することを検討してください。

    • Amazon CloudFront を使用して Amazon S3 のコンテンツを提供します。

    • パブリックアクセスを許可してはならないバケットが、パブリックアクセスを防ぐように正しく構成されていることを確認します。

    • データベースや、SQS やサードパーティーのデータストアなど、IAM 認証を使用する他のデータソースにも同じレビュープロセスを適用できます。

  4. AWS IAM Access Analyzer を使用する。

    • AWS IAM Access Analyzer (https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html) を設定して Amazon S3 バケットを分析し、S3 ポリシーが外部エンティティへのアクセスを許可するときに検出結果を生成できます。

  5. バージョニングと Object Lock メカニズムを実装します

    • Amazon S3 バージョニングを使用して、以前のバージョンのオブジェクトを保持すると、偶発的な削除や上書きから復旧できます。

    • Amazon S3 Object Lock を使用して、オブジェクトの必須アクセスコントロールを提供します。これにより、ロックの有効期限が切れるまで、ルートユーザーがオブジェクトを削除または上書きできなくなります。

    • Amazon S3 Glacier に保存されているアーカイブには、Amazon S3 Glacier ボールトロック を使用します。

  6. Amazon S3 インベントリを使用する

    • S3 オブジェクトのレプリケーションと暗号化ステータスの監査およびレポートには Amazon S3 インベントリを使用します。

  7. Amazon EBS と AMI の共有アクセス許可を確認する

    • Amazon EBSAMI 共有の共有アクセス許可を確認し、イメージとボリュームがワークロード外の AWS アカウント で共有されていないことを確認します。

  8. AWS Resource Access Manager 共有を定期的に確認する

    • AWS Resource Access Manager を使用して、AWS Network Firewall ポリシー、Amazon Route 53 Resolver ルール、サブネットなど、Amazon VPC 内のリソースを共有できます。

    • 定期的に共有リソースを監査し、共有が不要になったリソースは共有を停止します。

リソース

関連するベストプラクティス:

関連ドキュメント:

関連動画: