

# SEC08-BP02 保管中に暗号化を適用する
<a name="sec_protect_data_rest_encrypt"></a>

 保管中のデータには暗号化の使用を適用する必要があります。暗号化は、不正なアクセスや偶発的な開示が発生した場合、機密性の高いデータの機密を保持します。 

 **期待される成果:** プライベートデータが保管中にデフォルトで暗号化される。暗号化を行うと、データの機密性を維持し、意図的または不注意によるデータの開示や流出に対する保護層を追加して強化できます。暗号化されたデータは、まずそれを解除しないと読み出すこともアクセスすることもできません。暗号化されずに保管されたデータは、インベントリに入れて制御する必要があります。 

 **一般的なアンチパターン:** 
+  デフォルトで暗号化する設定を使用しない。 
+  複合キーに過度に寛容なアクセスを提供する。 
+  暗号化および復号化キーの使用をモニタリングしない。 
+  データを暗号化せずに保管する。 
+  データの使用、タイプ、分類に関係なく、すべてのデータに同じ暗号化キーを使う。 

 **このベストプラクティスが確立されていない場合のリスクレベル:** 高 

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

 暗号化キーとワークロード内のデータ分類をマッピングします。このアプローチは、データに単一の暗号化キーまたは非常にわずかな暗号化キーを使用する場合、過度に寛容なアクセスから保護するのに役立ちます (「[ (ワークロード内のデータを特定する)](sec_data_classification_identify_data.md) を参照してください)。 

 AWS Key Management Service (AWS KMS) は、多くの AWS サービスと統合し、保管中のデータを暗号化しやすくします。例えば、Amazon Simple Storage Service (Amazon S3) では、新しいオブジェクトが自動的に暗号化されるように、バケットの[暗号化をデフォルト](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-encryption.html)で設定できます。AWS KMS を使用する際は、どの程度厳格にデータを制限すべきかを検討してください。デフォルトでサービス制御型の AWS KMS キーは、AWS がユーザーに変わって管理および使用します。基盤となる暗号化キーにへのアクセスを細かく管理すべき機密データの場合、カスタマーマネージドキー (CMK) を検討してください。キーポリシーを使用することで、ローテーションやアクセス管理など、CMK を完全に制御できます。 

 さらに、[Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#encryption-by-default) および [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/default-bucket-encryption.html) は、デフォルト暗号化を設定することにより、暗号化の適用をサポートしています。[AWS Config ルール](https://docs.aws.amazon.com/config/latest/developerguide/managed-rules-by-aws-config.html) を使用して、[Amazon Elastic Block Store (Amazon EBS) ボリューム](https://docs.aws.amazon.com/config/latest/developerguide/encrypted-volumes.html)、[Amazon Relational Database Service (Amazon RDS) インスタンス](https://docs.aws.amazon.com/config/latest/developerguide/rds-storage-encrypted.html)、および [Amazon S3 バケット](https://docs.aws.amazon.com/config/latest/developerguide/s3-default-encryption-kms.html)などに対して暗号化を使用していることを自動的に確認します。 

 AWS はまた、クライアント側の暗号化も提供するため、クラウドにアップロードする前にデータを暗号化できます。AWS Encryption SDK は、[エンベロープ暗号化](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#enveloping)を使ってデータを暗号化する方法を提供します。ラッピングキーを提供すると、AWS Encryption SDK が暗号化する各データオブジェクトに対して固有のデータキーを生成します。マネージド単一テナントハードウェアセキュリティモジュール (HSM) が必要な場合は、AWS CloudHSM を検討します。AWS CloudHSM では、FIPS 140-2 レベル 3 検証済み HSM で暗号化キーを生成、インポート、管理できます。AWS CloudHSM のユースケースには、認証局 (CA) 発行用プライベートキーの保護、Oracle データベースに対する Transparent Database Encryption (TDE) の有効化などが挙げられます。AWS CloudHSM Client SDK は、データを AWS にアップロードする前に、AWS CloudHSM 内に保管されたキーを使って、クライアント側でデータを暗号化できるソフトウェアを提供します。Amazon DynamoDB Encryption Client ではまた、DynamoDB テーブルにアップロードする前のアイテムを暗号化および署名することもできます。 

 **実装手順** 
+  **Amazon S3 に対して保管中に暗号化を適用する: **[Amazon S3 バケットのデフォルト暗号化を実施します](https://docs.aws.amazon.com/AmazonS3/latest/userguide/default-bucket-encryption.html)。 

   **新しい Amazon EBS ボリュームの[デフォルトの暗号化を設定する](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html): **新しく作成したすべての Amazon EBS ボリュームを暗号化形式で作成することを指定します。AWS が提供するデフォルトキーを使用するか、作成したキーを使用するかを選択できます。 

   **暗号化された Amazon Machine Image (AMI) を設定する: **暗号化を有効化して既存の AMI をコピーすると、自動的にルートボリュームとスナップショットが暗号化されます。 

   **[Amazon RDS 暗号化を設定する](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Overview.Encryption.html): **暗号化オプションを使用して、保管中の Amazon RDS データベースクラスターとスナップショットに対して暗号化を設定します。 

   **各データ分類に対する適切なプリンシパルへのアクセスを制限するポリシーを使って AWS KMS キーを作成および設定する:** 例えば、本番環境データの暗号化のために AWS KMS キーを 1 つ、開発またはテストデータの暗号化のためにもう 1 つ作成します。他の AWS アカウント に対してキーアクセスを提供することもできます。開発環境と本番環境のアカウントは別にすることを検討してください。本番環境で開発アカウントのアーティファクトを復号化する必要がある場合、開発アーティファクトを暗号化するのに使用する CMK ポリシーを編集し、本番アカウントにアーティファクトを復号化する機能を付与できます。次に、本番環境が本番で使用するために復号化されたデータをインジェストできます。 

   **追加の AWS サービスで暗号化を設定する:** 他の AWS サービスを使用する場合は、サービスの暗号化オプションを決定するために、そのサービスの「[セキュリティドキュメント](https://docs.aws.amazon.com/security/)」を参照してください。 

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

 **関連するドキュメント:** 
+  [AWS Crypto Tools](https://docs.aws.amazon.com/aws-crypto-tools) 
+  [AWS ドキュメント](https://docs.aws.amazon.com/) 
+  [AWS Encryption SDK](https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/introduction.html) 
+  [AWS KMS Cryptographic Details Whitepaper](https://docs.aws.amazon.com/kms/latest/cryptographic-details/intro.html) (AWS KMS 暗号化の詳細についてのホワイトペーパー) 
+  [AWS Key Management Service](https://aws.amazon.com/kms) 
+  [AWS cryptographic services and tools](https://docs.aws.amazon.com/crypto/latest/userguide/awscryp-overview.html) (AWS 暗号化サービスとツール) 
+  [Amazon EBS Encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) (Amazon EBS 暗号化) 
+  [Default encryption for Amazon EBS volumes](https://aws.amazon.com/blogs/aws/new-opt-in-to-default-encryption-for-new-ebs-volumes/) (Amazon EBS ボリュームのデフォルトの暗号化) 
+  [Encrypting Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.Encryption.html) (Amazon RDS リソースの暗号化) 
+  [Amazon S3 バケットに対してデフォルトの暗号化を有効にするにはどうすればよいですか。](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/default-bucket-encryption.html) 
+  [暗号化を使用して Amazon S3 データを保護する](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingEncryption.html) 

 **関連動画:** 
+  [How Encryption Works in AWS](https://youtu.be/plv7PQZICCM) (AWS の暗号化の仕組み) 
+  [Securing Your Block Storage on AWS](https://youtu.be/Y1hE1Nkcxs8) (AWS でブロックストレージをセキュリティ保護する) 