Amazon ECS タスクにアタッチされた Amazon EBS ボリュームに保存されているデータの暗号化
AWS Key Management Service (AWS KMS) を使用して、データを保護する暗号化キーを作成および管理できます。Amazon EBS ボリュームは、保管時には AWS KMS keys を使用して暗号化されます。以下の種類のデータが暗号化されます。
-
ボリュームに保管されているデータ
-
ディスク I/O
-
ボリュームから作成されるスナップショット
-
暗号化されたスナップショットから作成された新しいボリューム
タスクにアタッチされている Amazon EBS ボリュームは、エイリアス alias/aws/ebs の付いたデフォルトのAWS マネージドキー か、もしくはボリューム設定に指定されているカスタマーマネージド対称キーを使用して暗号化できます。デフォルトの AWS マネージドキー はそれぞれの AWS リージョン ごとの AWS アカウント に対して固有で、自動的に作成されます。カスタマーマネージド型の対称キーを作成するには、「AWS KMS デベロッパーガイド」の「対称暗号化 KMS キーを作成する」に記載の手順に従ってください。
Amazon EBS 暗号化をデフォルトで設定できます。これにより、特定の AWS リージョン 内のタスクにアタッチされた新しいボリュームはすべて、アカウントに設定した KMS キーを使用して暗号化されます。Amazon EBS の暗号化およびデフォルトの暗号化の詳細については、「Amazon EBS ユーザーガイド」の「Amazon EBS の暗号化」を参照してください。
Amazon ECS マネージドインスタンスの動作
デフォルトで暗号化を有効にするか、暗号化したいボリュームの作成時に都度有効化することで、Amazon EBS ボリュームを暗号化することが可能です。(アカウントレベルで) デフォルトでの暗号化を有効にする方法について、詳細は「Amazon EBS ユーザーガイド」の「暗号化をデフォルトで有効にする」を参照してください。
これらのキーは任意の組み合わせで設定できます。KMS キーの優先順位は次のとおりです。
-
ボリューム設定で指定された KMS キー。ボリューム設定で KMS キーを指定すると、Amazon EBS のデフォルトとアカウントレベルで指定した KMS キーがオーバーライドされます。
-
アカウントレベルで指定された KMS キー。Amazon ECS マネージドストレージのクラスターレベルの暗号化に KMS キーを指定すると、Amazon EBS のデフォルトの暗号化はオーバーライドされますが、ボリューム設定に指定した KMS キーはオーバーライドされません。
-
Amazon EBS のデフォルトの暗号化。デフォルトの暗号化は、アカウントレベルの KMS キーまたはボリューム設定でキーを指定しない場合に適用されます。Amazon EBS 暗号化をデフォルトで有効にすると、デフォルトの暗号化用に指定した KMS キーがデフォルトになります。それ以外の場合、デフォルトはエイリアス
alias/aws/ebsの AWS マネージドキー になります。注記
encryptedをボリューム設定のfalseに設定し、アカウントレベルの KMS キーを指定せずにデフォトで Amazon EBS 暗号化を有効にすると、そのボリュームはデフォルトで Amazon EBS 暗号化に指定されたキーで暗号化されます。
Amazon ECS 以外のマネージドインスタンスの動作
クラスターを作成または更新する時に、Amazon ECS マネージドストレージの Amazon ECS クラスターレベルの暗号化を設定することもできます。クラスターレベルの暗号化はタスクレベルで適用され、指定された KMS キーを使用することで、特定のクラスター上で実行する各タスクにアタッチされた Amazon EBS ボリュームの暗号化を行うことができます。各タスクに対するクラスターレベルでの暗号化設定について、詳細は「Amazon ECS API リファレンス」の「マネージドストレージ設定」を参照してください。
これらのキーは任意の組み合わせで設定できます。KMS キーの優先順位は次のとおりです。
-
ボリューム設定で指定された KMS キー。ボリューム設定で KMS キーを指定すると、Amazon EBS のデフォルトとクラスターレベルで指定した KMS キーがオーバーライドされます。
-
クラスターレベルで指定された KMS キー。Amazon ECS マネージドストレージのクラスターレベルの暗号化に KMS キーを指定すると、Amazon EBS のデフォルトの暗号化はオーバーライドされますが、ボリューム設定に指定した KMS キーはオーバーライドされません。
-
Amazon EBS のデフォルトの暗号化。デフォルトの暗号化は、クラスターレベルの KMS キーまたはボリューム設定でキーを指定しない場合に適用されます。Amazon EBS 暗号化をデフォルトで有効にすると、デフォルトの暗号化用に指定した KMS キーがデフォルトになります。それ以外の場合、デフォルトはエイリアス
alias/aws/ebsの AWS マネージドキー になります。注記
encryptedを ボリューム設定 のfalseに設定し、クラスターレベルの KMS キーを指定せずにデフォトで Amazon EBS 暗号化を有効にすると、そのボリュームはデフォルトで Amazon EBS 暗号化に指定されたキーで暗号化されます。
カスタマーマネージド型 KMS キーのポリシー
カスタマーマネージド型キーを使用してタスクにアタッチされている EBS ボリュームを暗号化するには、KMS キーポリシーを設定して、ボリューム設定に使用する IAM ロールにキーの使用に必要な権限を付与する必要があります。キーポリシーには、kms:CreateGrant と kms:GenerateDataKey* 両方のアクセス許可を含める必要があります。スナップショットを使用して作成されたボリュームを暗号化するには、kms:ReEncryptTo および kms:ReEncryptFrom のアクセス許可が必要です。アタッチする新しい空のボリュームのみを設定して暗号化する場合は、kms:ReEncryptTo および kms:ReEncryptFrom のアクセス許可は除外できます。
以下の JSON スニペットは、KMS キーポリシーにアタッチするキーポリシーステートメントを示します。これらのステートメントにより、Amazon ECS がキーを使用して EBS ボリュームを暗号化できるようになります。ここに挙げたポリシーステートメントを実行するには、 をユーザー自身の情報に置き換えます。他の場合と同様に、必要な権限のみを設定してください。user input placeholders
{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ecsInfrastructureRole" }, "Action": "kms:DescribeKey", "Resource":"*" }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ecsInfrastructureRole" }, "Action": [ "kms:GenerateDataKey*", "kms:ReEncryptTo", "kms:ReEncryptFrom" ], "Resource":"*", "Condition": { "StringEquals": { "kms:CallerAccount": "aws_account_id", "kms:ViaService": "ec2.region.amazonaws.com" }, "ForAnyValue:StringEquals": { "kms:EncryptionContextKeys": "aws:ebs:id" } } }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ecsInfrastructureRole" }, "Action": "kms:CreateGrant", "Resource":"*", "Condition": { "StringEquals": { "kms:CallerAccount": "aws_account_id", "kms:ViaService": "ec2.region.amazonaws.com" }, "ForAnyValue:StringEquals": { "kms:EncryptionContextKeys": "aws:ebs:id" }, "Bool": { "kms:GrantIsForAWSResource": true } } }
キーポリシーとアクセス許可について、詳しくは「AWS KMS デベロッパーガイド」の「AWS KMS のキーポリシー」および「AWS KMS のアクセス許可」を参照してください。キーのアクセス許可に関連する EBS ボリュームアタッチメントのトラブルシューティングについては、「Amazon ECS タスクへの Amazon EBS ボリュームのアタッチに関するトラブルシューティング 」を参照してください。