

# SEC08-BP04 アクセスコントロールを適用する
<a name="sec_protect_data_rest_access_control"></a>

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

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

**一般的なアンチパターン:**
+  機密度要件と分類の異なるデータを一緒に保管する。
+  復号化キーに、過度に寛容なアクセス許可を使用する。
+  データを不適切に分類する。
+  重要なデータの詳細なバックアップを保持しない。
+  本番データへの永続的なアクセスを提供する。
+  データアクセスを監査することも、定期的にアクセス許可を審査することもしていない。

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

## 実装のガイダンス
<a name="implementation-guidance"></a>

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

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

 レベルごとに異なる AWS アカウント を使用して、異なる分類レベルに基づいてデータを分離し、[AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html) を使用してこれらのアカウントを管理できます。この分離は、不正アクセスを防止し、データ漏洩のリスクを最小限に抑えるのに役立ちます。

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

 Amazon S3 に保存されている重要なデータのバージョニングと Object Lock メカニズムを実装します。[Amazon S3 バージョニング](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Versioning.html)は、以前のバージョンのオブジェクトを保存して、誤って削除または上書きされたデータを復元します。[Amazon S3 Object Lock](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock.html)は、オブジェクトの必須アクセスコントロールを提供します。これにより、ロックの有効期限が切れるまで、ルートユーザーがオブジェクトを削除または上書きできなくなります。さらに、[Amazon Glacier ボールトロック](https://docs.aws.amazon.com/amazonglacier/latest/dev/vault-lock.html)は、Amazon Glacier に保存されているアーカイブにも同様の機能を提供します。

### 実装手順
<a name="implementation-steps"></a>

1.  **最小特権の原則でアクセスコントロールを適用します**。
   +  ユーザーとサービスに付与されたアクセス許可を確認し、タスクを実行するために必要なアクセス許可のみを持っていることを確認します。
   +  [AWS Key Management Service (AWS KMS) ポリシー](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html)を確認し、暗号化キーへのアクセスを確認します。

1.  **異なる分類レベルに基づいてデータを分離します**。
   +  データ分類レベルごとに異なる AWS アカウント を使用します。
   +  [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html) を使用してこれらのアカウントを管理します。

1.  **Amazon S3 バケットとオブジェクトのアクセス許可を確認します**。
   +  Amazon S3 バケットのポリシーで付与されるアクセスのレベルを定期的にレビューします。
   +  絶対に必要な場合を除き、公開で読み取り可能なバケットや書き込み可能なバケットは使用しないでください。
   +  [AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/managed-rules-by-aws-config.html) を使用して公開されているバケットを検出することを検討してください。
   +  Amazon CloudFront を使用して Amazon S3 のコンテンツを提供します。
   +  パブリックアクセスを許可してはならないバケットが、パブリックアクセスを防ぐように正しく構成されていることを確認します。
   +  データベースや、SQS やサードパーティーのデータストアなど、IAM 認証を使用する他のデータソースにも同じレビュープロセスを適用できます。

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

1.  **バージョニングと Object Lock メカニズムを実装します**。
   +  [Amazon S3 バージョニング](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Versioning.html)を使用して、以前のバージョンのオブジェクトを保持すると、偶発的な削除や上書きから復旧できます。
   +  [Amazon S3 Object Lock](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock.html) を使用して、オブジェクトの必須アクセスコントロールを提供します。これにより、ロックの有効期限が切れるまで、ルートユーザーがオブジェクトを削除または上書きできなくなります。
   +  Amazon Glacier に保存されているアーカイブには、[Amazon Glacier ボールトロック](https://docs.aws.amazon.com/amazonglacier/latest/dev/vault-lock.html)を使用します。

1.  **Amazon S3 インベントリを使用する**。
   +  S3 オブジェクトのレプリケーションと暗号化ステータスの監査およびレポートには [Amazon S3 インベントリ](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html)を使用します。

1.  **Amazon EBS と AMI の共有アクセス許可を確認する**。
   +  [Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-modifying-snapshot-permissions.html) と [AMI 共有](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/sharing-amis.html)の共有アクセス許可を確認し、イメージとボリュームがワークロード外の AWS アカウント で共有されていないことを確認します。

1.  **AWS Resource Access Manager 共有を定期的に確認する**。
   +  [AWS Resource Access Manager](https://docs.aws.amazon.com/ram/latest/userguide/what-is.html) を使用して、AWS Network Firewall ポリシー、Amazon Route 53 Resolver ルール、サブネットなど、Amazon VPC 内のリソースを共有できます。
   +  定期的に共有リソースを監査し、共有が不要になったリソースは共有を停止します。

## リソース
<a name="resources"></a>

 **関連するベストプラクティス:** 
+ [SEC03-BP01 アクセス要件を定義する](sec_permissions_define.md) 
+  [SEC03-BP02 最小特権のアクセスを付与します](sec_permissions_least_privileges.md) 

 **関連ドキュメント:** 
+  [AWS KMS Cryptographic Details Whitepaper](https://docs.aws.amazon.com/kms/latest/cryptographic-details/intro.html) 
+  [Amazon S3 リソースへのアクセス許可の管理の導入](https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-managing-access-s3-resources.html) 
+  [AWS KMS リソースへのアクセス管理の概要](https://docs.aws.amazon.com/kms/latest/developerguide/control-access-overview.html) 
+  [AWS Config ルール](https://docs.aws.amazon.com/config/latest/developerguide/managed-rules-by-aws-config.html) 
+  [Amazon S3 \+ Amazon CloudFront: A Match Made in the Cloud](https://aws.amazon.com/blogs/networking-and-content-delivery/amazon-s3-amazon-cloudfront-a-match-made-in-the-cloud/) 
+  [バージョニングの使用](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html) 
+  [S3 Object Lock を使ってオブジェクトをロックする](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html) 
+  [Sharing an Amazon EBS Snapshot](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-modifying-snapshot-permissions.html) 
+  [共有 AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/sharing-amis.html) 
+  [Amazon S3 で単一ページのアプリケーションをホストする](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/deploy-a-react-based-single-page-application-to-amazon-s3-and-cloudfront.html) 
+  [AWS グローバル条件キー](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) 
+  [ でのデータ境界の構築AWS](https://docs.aws.amazon.com/whitepapers/latest/building-a-data-perimeter-on-aws/building-a-data-perimeter-on-aws.html) 

 **関連動画:** 
+  [Securing Your Block Storage on AWS](https://youtu.be/Y1hE1Nkcxs8) 