翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
既存および新規の Amazon EBSボリュームを自動的に暗号化する
作成者: Tony DeMarco (AWS) と Josh Joy (AWS)
概要
Amazon Elastic Block Store (Amazon EBS) ボリュームの暗号化は、組織のデータ保護戦略にとって重要です。これは、アーキテクチャが適切に設計された環境を確立するための重要なステップです。暗号化されていない既存のEBSボリュームまたはスナップショットを直接暗号化する方法はありませんが、新しいボリュームまたはスナップショットを作成することで暗号化できます。詳細については、Amazon EC2ドキュメントのEBS「リソースの暗号化」を参照してください。このパターンは、新規と既存の両方のEBSボリュームを暗号化するための予防的コントロールと検出的コントロールを提供します。このパターンでは、アカウント設定の設定、自動修復プロセスの作成、アクセス制御の実装を行います。
前提条件と制限
前提条件
アクティブな Amazon Web Services (AWS) アカウント
macOS、Linux、または Windows にインストールおよび設定されたAWSコマンドラインインターフェイス (AWS CLI)
macOS、Linux、または Windows にインストールおよび設定されている jq
AWS Identity and Access Management (IAM) のアクセス許可は、、Amazon Elastic Compute Cloud (Amazon EC2)AWS CloudFormation、AWSSystems Manager、AWSConfig、および AWS Key Management Service (AWS KMS) への読み取りおよび書き込みアクセス権を持つようにプロビジョニングされます。
AWS Organizations は、サービスコントロールポリシーの要件であるすべての機能を有効にして設定されています。
AWS ターゲットアカウントで Config が有効になっている
制約事項
ターゲットAWSアカウントには、encrypted-volumes という名前AWSの Config ルールがあってはなりません。この解決策はこの名前のルールをデプロイします。この名前のルールが既に存在していると、デプロイが失敗し、同じルールを複数回処理することに関連して不要な料金が発生する可能性があります。
このソリューションは、同じAWSKMSキーですべてのEBSボリュームを暗号化します。
アカウントのEBSボリュームの暗号化を有効にすると、この設定はリージョン固有になります。AWS リージョンで有効にした場合、そのリージョンの個々のボリュームまたはスナップショットに対して無効にすることはできません。詳細については、Amazon EC2ドキュメントの「デフォルトでの暗号化」を参照してください。
暗号化されていない既存のEBSボリュームを修正する場合は、EC2インスタンスが使用されていないことを確認してください。この自動化によってインスタンスがシャットダウンされ、暗号化されていないボリュームがデタッチされ、暗号化されたボリュームがアタッチされます。修正中はダウンタイムが発生します。これが組織にとって重要なインフラストラクチャである場合は、インスタンスで実行されているアプリケーションの可用性に影響を与えないように、手動または自動の高可用性構成を実施してください。重要なリソースは、標準のメンテナンス時間帯にのみ修正することをお勧めします。
アーキテクチャ
自動化ワークフロー
AWS Config は暗号化されていないEBSボリュームを検出します。
管理者は Config AWS を使用して、Systems Manager に修復コマンドを送信します。
Systems Manager オートメーションは、暗号化されていないEBSボリュームのスナップショットを作成します。
Systems Manager オートメーションは、 AWSKMSを使用してスナップショットの暗号化されたコピーを作成します。
Systems Manager の自動化は次のことを行います。
実行中の場合、影響を受けるEC2インスタンスを停止します
ボリュームの新しい暗号化されたコピーをEC2インスタンスにアタッチします。
EC2 インスタンスを元の状態に戻します。
ツール
AWS サービス
AWS CLI - AWS コマンドラインインターフェイス (AWSCLI) は、 AWSサービスのパブリックアプリケーションプログラミングインターフェイス (APIs) への直接アクセスを提供します。を使用してサービスの機能を調べAWSCLI、シェルスクリプトを開発して リソースを管理できます。低レベルの APIと同等のコマンドに加えて、いくつかの AWSサービスでは のカスタマイズが可能ですAWSCLI。カスタマイズには、複雑な でサービスを簡単に使用する高レベルのコマンドを含めることができますAPI。
AWS CloudFormation – AWS CloudFormation は、 AWSリソースのモデル化とセットアップに役立つサービスです。必要なすべてのAWSリソース (Amazon EC2インスタンスなど) を記述するテンプレートを作成すると、 はそれらのリソースを CloudFormation プロビジョニングして設定します。
AWS Config – AWS Config は、AWSアカウント内のAWSリソースの設定の詳細ビューを提供します。これには、リソース間の関係と設定の履歴が含まれるため、時間の経過と共に設定と関係がどのように変わるかを確認できます。
Amazon EC2 – Amazon Elastic Compute Cloud (Amazon EC2) は、ソフトウェアシステムの構築とホストに使用するサイズ変更可能なコンピューティング性能を提供するウェブサービスです。
AWS KMS – AWS Key Management Service (AWS KMS) は、クラウド向けにスケーリングされた暗号化およびキー管理サービスです。 のAWSKMSキーと機能は、他の AWSのサービスによって使用され、AWS環境内のデータを保護するために使用できます。
AWS Organizations – AWS Organizations は、作成して一元管理する組織に複数のAWSアカウントを統合することができるアカウント管理サービスです。
AWS Systems Manager Automation – Systems Manager Automation は、Amazon EC2インスタンスやその他のAWSリソースの一般的なメンテナンスおよびデプロイタスクを簡素化します。
その他のサービス
jq
– jq は軽量で柔軟なコマンドラインJSONプロセッサです。このツールを使用して、AWSCLI出力からキー情報を抽出します。
コード
このパターンのコードは、 GitHub 「カスタマーKMSキーを使用して暗号化されていないEBSボリュームを自動的に修正する
」リポジトリで利用できます。
エピック
タスク | 説明 | 必要なスキル |
---|---|---|
スクリプトと CloudFormation テンプレートをダウンロードします。 | シェルスクリプト、JSONファイル、 CloudFormation テンプレートを からダウンロードします。 GitHub カスタマーKMSキーリポジトリを使用して、暗号化されていないEBSボリュームを自動的に修正します | AWS 管理者、一般 AWS |
AWS KMS キーの管理者を特定します。 |
| AWS 管理者、一般 AWS |
Stack1 CloudFormation template をデプロイします。 |
CloudFormation テンプレートのデプロイの詳細については、 CloudFormation ドキュメントのAWS CloudFormation 「テンプレートの使用」を参照してください。 | AWS 管理者、一般 AWS |
Stack2 CloudFormation template をデプロイします。 | で CloudFormation、
| AWS 管理者、一般 AWS |
テスト用に暗号化されていないボリュームを作成する。 | 暗号化されていないEBSボリュームを持つEC2インスタンスを作成します。手順については、Amazon ドキュメントの「Amazon EBSボリュームの作成」を参照してください。 EC2インスタンスタイプは関係なく、インスタンスへのアクセスも必要ありません。t2.micro インスタンスを作成して無料利用枠のままにしておくことができ、key pair を作成する必要はありません。 | AWS 管理者、一般 AWS |
Config AWS ルールをテストします。 |
Systems Manager では、修復の進行状況とステータスを次のように表示できます。
| AWS 管理者、一般 AWS |
追加のアカウントまたはAWSリージョンを設定します。 | ユースケースに応じて、追加のアカウントまたはAWSリージョンに対してこのエピックを繰り返します。 | AWS 管理者、一般 AWS |
タスク | 説明 | 必要なスキル |
---|---|---|
有効スクリプトを実行する。 |
| AWS administrator、GeneralAWS、bash |
設定が更新されたことを確認する。 |
| AWS 管理者、一般 AWS |
追加のアカウントまたはAWSリージョンを設定します。 | ユースケースに応じて、追加のアカウントまたはAWSリージョンに対してこのエピックを繰り返します。 | AWS 管理者、一般 AWS |
タスク | 説明 | 必要なスキル |
---|---|---|
サービスコントロールポリシーを作成する。 |
| AWS 管理者、一般 AWS |
関連リソース
AWS サービスドキュメント
その他のリソース