EBS-backed AMI での暗号化の利用
Amazon EBS スナップショットを使用した AMI は Amazon EBS 暗号化の利点を活かすことができます。データおよびルートボリュームの両方のスナップショットを暗号化して AMI にアタッチできます。インスタンスを起動し、完全な EBS 暗号化サポートも含めてイメージをコピーできます。これらのオペレーションの暗号化パラメータは、AWS KMS が利用できるすべてのリージョンでサポートされています。
暗号化された EBS ボリュームを持つ EC2 インスタンスは、他のインスタンスと同様に AMIs から起動します。また、暗号化されていない EBS スナップショットでバックアップされている AMI からインスタンスを起動するとき、起動中に一部またはすべてのボリュームを暗号化できます。
EBS ボリュームと同様に、AMI のスナップショットはデフォルトの AWS KMS key または指定したカスタマーマネージド型キーで暗号化できます。いずれの場合も、選択した KMS キー を使用するためのアクセス権限が必要です。
暗号化されたスナップショットを持つ AMI は、AWS アカウント間で共有できます。詳細については、Amazon EC2 での共有 AMI の使用方法について を参照してください。
EBS-backed AMI トピックでの暗号化
インスタンスの起動シナリオ
AMI から Amazon EC2 インスタンスを起動するには、RunInstances
または直接 Amazon EC2 API や CLI を使用して、AWS Management Console アクションを実行します。その際、ブロックデバイスマッピングから提供されるパラメータを指定します。詳細については、「Amazon EC2 インスタンスでのボリュームのブロックデバイスマッピング」を参照してください。AWS CLI からブロックデバイスマッピングを制御する例については、「EC2 インスタンスを起動、リスト、および終了する」を参照してください。
デフォルトでは、明示的な暗号化パラメータがない場合、AMI のソーススナップショットから EBS ボリュームを復元しているときに、RunInstances
アクションは AMI のソーススナップショットの既存の暗号化状態を維持します。デフォルトでの暗号化が有効になっている場合、AMI から作成したすべてのボリュームが暗号化されます (作成元のスナップショットが暗号化されているかどうかは関係ありません)。デフォルトでの暗号化が有効にされていない場合、インスタンスは AMI の暗号化状態を維持します。
インスタンスを起動し、同時に、暗号化パラメータを指定して、新しい暗号化状態を生成されるボリュームに適用することもできます。そのため、以下の動作が観察されます。
暗号化パラメータなしでの起動
-
デフォルトでの暗号化が有効にされている場合を除き、暗号化されていないスナップショットは、暗号化されていないボリュームに復元されます。デフォルトでの暗号化が有効にされている場合は、新しく作成されるすべてのボリュームが暗号化されます。
-
所有する暗号化されたスナップショットは、同じ KMS キー に暗号化されるボリュームに復元されます。
-
所有していない (例えば、AMI が共有されている) 暗号化されたスナップショットは、ユーザーの AWS アカウントのデフォルト KMS キーで暗号化されているボリュームに復元されます。
デフォルトの動作は、暗号化パラメータを指定してオーバーライドできます。利用できるパラメータは、Encrypted
と KmsKeyId
です。Encrypted
パラメータのみを設定すると、次のような結果になります。
Encrypted
を設定し、KmsKeyId
を指定しない場合のインスタンス起動動作
-
暗号化されていないスナップショットは、ユーザーの AWS アカウントのデフォルト KMS キーで暗号化されている EBS ボリュームに復元されます。
-
所有する暗号化されたスナップショットは、同じ KMS キー により暗号化された EBS ボリュームに復元されます。(つまり、
Encrypted
パラメータには効果がありません。) -
所有していない (つまり、AMI が共有されている) 暗号化されたスナップショットは、ユーザーの AWS アカウントのデフォルト KMS キーで暗号化されているボリュームに復元されます。(つまり、
Encrypted
パラメータには効果がありません。)
Encrypted
と KmsKeyId
両方のパラメータを設定すると、暗号化オペレーションにデフォルトではない KMS キー を指定できます。結果として次のように動作します。
Encrypted
と KmsKeyId
が両方設定されたインスタンス
-
暗号化されていないスナップショットは、指定された KMS キー により暗号化された EBS ボリュームに復元されます。
-
暗号化されたスナップショットは、元の KMS キー ではなく、指定された KMS キー に暗号化された EBS ボリュームに復元されます。
Encrypted
パラメータも設定せずに KmsKeyId
を送信するとエラーが発生します。
以下のセクションでは、デフォルトではない暗号化パラメータを使用して AMI からインスタンスを起動する例を示します。これらの各シナリオでは、RunInstances
アクションに指定するパラメータにより、スナップショットからボリュームを復元中に暗号化の状態が変化します。
コンソールを使用して AMI からインスタンスを起動する方法については、「Amazon EC2 インスタンスの起動」を参照してください。
起動時にボリュームを暗号化する
この例では、暗号化されていないスナップショットでバックアップされた AMI を使用して、暗号化された EBS ボリュームのある EC2 インスタンスを起動します。
Encrypted
パラメータのみを使用すると、このインスタンスのボリュームが暗号化されます。KmsKeyId
パラメータの指定はオプションです。KMS キー ID を指定しない場合、AWS アカウントのデフォルト KMS キーを使用して、ボリュームを暗号化します。所有する別の KMS キー にボリュームを暗号化するには、KmsKeyId
パラメータを指定します。
起動時にボリュームを再暗号化する
この例では、暗号化されたスナップショットでバックアップされた AMI を使用して、新しい KMS キー により暗号化された EBS ボリュームのある EC2 インスタンスを起動します。
AMI を所有していて、暗号化パラメータを指定しない場合、作成されるインスタンスではスナップショットと同じ KMS キーでボリュームが暗号化されます。他のアカウントから共有された AMI に対して暗号化パラメータを指定しない場合、ボリュームはデフォルト KMS キー により暗号化されます。図のように暗号化パラメータが指定されている場合、ボリュームは指定された KMS キー により暗号化されます。
起動時に複数のボリュームの暗号化状態を変更する
このより複雑な例では、複数のスナップショット (暗号化状態はそれぞれ異なります) でバックアップされた AMI を使用して、新しく暗号化されたボリュームと再暗号化されたボリュームがある EC2 インスタンスを起動します。
このシナリオでは、RunInstances
アクションにソーススナップショットそれぞれに対する暗号化パラメータが指定されます。可能な暗号化パラメータがすべて指定されると、AMI を所有しているかどうかに関係なく、作成されるインスタンスは同じです。
イメージコピーのシナリオ
Amazon EC2 AMI をコピーするには、CopyImage
または直接 Amazon EC2 API や CLI を使用して、AWS Management Console アクションを実行します。
デフォルトでは、明示的な暗号化パラメータがない場合、コピー中 CopyImage
アクションは AMI のソーススナップショットの既存の暗号化状態を維持します。AMI をコピーし、同時に、暗号化パラメータを指定して、新しい暗号化状態を関連付けられている EBS スナップショットに適用することもできます。そのため、以下の動作が観察されます。
暗号化パラメータなしでのコピー
-
デフォルトでの暗号化が有効にされている場合を除き、暗号化されていないスナップショットは、別の暗号化されていないスナップショットにコピーされます。デフォルトでの暗号化が有効にされている場合は、新しく作成されるすべてのスナップショットが暗号化されます。
-
所有する暗号化されたスナップショットは、同じ KMS キー で暗号化されたスナップショットにコピーされます。
-
所有していない (例えば、AMI が共有されている) 暗号化されたスナップショットは、ユーザーの AWS アカウントのデフォルト KMS キーで暗号化されているスナップショットにコピーされます。
これらすべてのデフォルトの動作は、暗号化パラメータを指定してオーバーライドできます。利用できるパラメータは、Encrypted
と KmsKeyId
です。Encrypted
パラメータのみを設定すると、次のような結果になります。
Encrypted
を設定し、KmsKeyId
を指定しない場合のコピーイメージ動作
-
暗号化されていないスナップショットは、AWS アカウントのデフォルト KMS キーで暗号化されたスナップショットにコピーされます。
-
暗号化されたスナップショットは、同じ KMS キー により暗号化されたスナップショットにコピーされます。(つまり、
Encrypted
パラメータには効果がありません。) -
所有していない (例えば、AMI が共有されている) 暗号化されたスナップショットは、ユーザーの AWS アカウントのデフォルト KMS キーで暗号化されているボリュームにコピーされます。(つまり、
Encrypted
パラメータには効果がありません。)
Encrypted
と KmsKeyId
両方のパラメータを設定すると、暗号化オペレーションにカスタマー管理 KMS キー を指定できます。結果として次のように動作します。
Encrypted
と KmsKeyId
の両方を設定した場合のコピーイメージ動作
-
暗号化されていないスナップショットは、指定された KMS キー により暗号化されたスナップショットにコピーされます。
-
暗号化されたスナップショットは、元の KMS キー ではなく、指定された KMS キー に暗号化されたスナップショットにコピーされます。
Encrypted
パラメータも設定せずに KmsKeyId
を送信するとエラーが発生します。
以下のセクションでは、デフォルトではない暗号化パラメータを使用して AMI をコピーし、結果として暗号化状態が変化する例を示します。
コンソールを使用する手順の詳細については、「Amazon EC2 AMI のコピー」を参照してください。
コピー時に暗号化されていないイメージを暗号化する
このシナリオでは、暗号化されていないルートスナップショットでバックアップされた AMI は、暗号化されたルートスナップショットを持つ AMI にコピーされます。CopyImage
アクションは、カスタマーマネージド型キーなど、2 つの暗号化パラメータで呼び出されます。その結果、ルートスナップショットの暗号化ステータスが変更され、ターゲット AMI はソーススナップショットと同じデータを含むルートスナップショットにバックアップされますが、指定されたキーを使用して暗号化されます。両方の AMI でスナップショットのストレージコストと、いずれかの AMI から起動するインスタンスの料金が発生します。
注記
デフォルトで暗号化を有効にすると、AMI 内のすべてのスナップショットで Encrypted
パラメータを true
に設定したのと同じ効果があります。
Encrypted
パラメータを設定すると、このインスタンスの単一のスナップショットが暗号化されます。KmsKeyId
パラメータを指定しない場合は、デフォルトのカスタマーマネージド型キーを使用して、スナップショットのコピーが暗号化されます。
注記
複数のスナップショットがあるイメージをコピーして、それぞれの暗号化状態を個々に設定することもできます。