

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon EBS 暗号化
<a name="ebs-encryption"></a>

Amazon EBS 暗号化は、Amazon EC2 インスタンスに関連付けられた EBS リソースの簡単な暗号化ソリューションとして使用できます。Amazon EBS 暗号化では、独自のキー管理インフラストラクチャを構築、保守、保護する必要はありません。Amazon EBS 暗号化は、暗号化されたボリュームとスナップショットを作成するときに、 AWS KMS keys を使用します。

暗号化オペレーションは EC2 インスタンスをホストするサーバー上で実行され、インスタンスとそれに接続された EBS ストレージ間でのデータの保存と転送中のデータの両方のセキュリティを保証します。

1 つのインスタンスに対し、暗号化されたボリュームと暗号化されていないボリュームの両方を、同時にアタッチできます。すべての Amazon EC2 インスタンスタイプは Amazon EBS 暗号化をサポートしています。

**Topics**
+ [

# Amazon EBS 暗号化の仕組み
](how-ebs-encryption-works.md)
+ [

# Amazon EBS 暗号化の要件
](ebs-encryption-requirements.md)
+ [

# デフォルトで Amazon EBS の暗号化を有効化
](encryption-by-default.md)
+ [

## EBS リソースの暗号化
](#encryption-parameters)
+ [

# Amazon EBS 暗号化に使用される AWS KMS キーのローテーション
](kms-key-rotation.md)
+ [

# Amazon EBS 暗号化の例
](encryption-examples.md)

# Amazon EBS 暗号化の仕組み
<a name="how-ebs-encryption-works"></a>

EC2 インスタンスのブートボリュームとデータボリュームの両方を暗号化できます。

暗号化された EBS ボリュームを作成し、サポートされるインスタンスタイプにアタッチする場合、以下のタイプのデータが暗号化されます。
+ ボリューム内の保存データ
+ ボリュームとインスタンスの間で移動されるすべてのデータ
+ ボリュームから作成されたすべてのスナップショット
+ それらのスナップショットから作成されたすべてのボリューム

Amazon EBS は、業界標準の AES-256 データ暗号化を使用して、ボリュームを[データキー](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-keys)で暗号化します。データキーは によって生成され AWS KMS 、 によって AWS KMS キー AWS KMS で暗号化されてから、ボリューム情報とともに保存されます。Amazon EBS は、Amazon EBS リソースを作成する各リージョン AWS マネージドキー に一意の を自動的に作成します。KMS キーの[エイリアス](https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html)は `aws/ebs` です。デフォルトでは、Amazon EBS は暗号化にこの KMS キー を使用します。または、作成した対称カスタマーマネージド暗号化キーを使用することもできます。独自の KMS キー を使用することにより、KMS キー の作成、更新、無効化ができるなど、より高い柔軟性が得られます。

Amazon EC2 は と連携して AWS KMS 、暗号化されたボリュームを作成するスナップショットが暗号化されているかどうかに応じて、EBS ボリュームをわずかに異なる方法で暗号化および復号化します。

## 暗号化されたスナップショットに対する EBS 暗号化の動作
<a name="how-ebs-encryption-works-encrypted-snapshot"></a>

所有している暗号化されたスナップショットから暗号化されたボリュームを作成すると、Amazon EC2 は AWS KMS と連携して EBS ボリュームを次のように暗号化および復号します。

1. Amazon EC2 は [GenerateDataKeyWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyWithoutPlaintext.html) リクエストを に送信し AWS KMS、ボリューム暗号化用に選択した KMS キーを指定します。

1. ボリュームがスナップショットと同じ KMS キーを使用して暗号化されている場合、 はスナップショットと同じデータキー AWS KMS を使用し、同じ KMS キーで暗号化します。ボリュームが別の KMS キーを使用して暗号化されている場合、 は新しいデータキー AWS KMS を生成し、指定した KMS キーで暗号化します。暗号化されたデータキーは Amazon EBS に送信され、ボリュームメタデータとともに保存されます。

1. 暗号化されたボリュームをインスタンスにアタッチすると、Amazon EC2 は [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html) リクエストを AWS KMS に送信し、データキーを復号化できるようにします。

1. AWS KMS は暗号化されたデータキーを復号し、復号されたデータキーを Amazon EC2 に送信します。

1. Amazon EC2 は、Nitro ハードウェア内のプレーンテキストデータキーを使用して、ボリュームのディスク I/O を暗号化します。プレーンテキストデータキーは、ボリュームがインスタンスにアタッチされる限り、メモリ内で維持されます。

## 暗号化されていないスナップショットに対する EBS 暗号化の動作
<a name="how-ebs-encryption-works-unencrypted-snapshot"></a>

暗号化されていないスナップショットから暗号化されたボリュームを作成する場合、Amazon EC2 は AWS KMS と連携して、次のように EBS ボリュームを暗号化および復号化します。

1. Amazon EC2 は [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html) リクエストを に送信し AWS KMS、スナップショットから作成されたボリュームを暗号化できるようにします。

1. Amazon EC2 は [GenerateDataKeyWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyWithoutPlaintext.html) リクエストを に送信し AWS KMS、ボリューム暗号化用に選択した KMS キーを指定します。

1. AWS KMS は新しいデータキーを生成し、ボリューム暗号化用に選択した KMS キーで暗号化し、暗号化されたデータキーを Amazon EBS に送信してボリュームメタデータとともに保存します。

1. Amazon EC2 は、暗号化されたデータキーを復号 AWS KMS するために [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) リクエストを に送信し、ボリュームデータの暗号化に使用します。

1. 暗号化されたボリュームをインスタンスにアタッチすると、Amazon EC2 は [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html) リクエストを AWS KMSに送信し、データキーを復号化できるようにします。

1. 暗号化されたボリュームをインスタンスにアタッチすると、Amazon EC2 は暗号化されたデータキーを指定して AWS KMS[Decrypt ](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html)リクエストを に送信します。

1. AWS KMS は暗号化されたデータキーを復号し、復号されたデータキーを Amazon EC2 に送信します。

1. Amazon EC2 は、Nitro ハードウェア内のプレーンテキストデータキーを使用して、ボリュームのディスク I/O を暗号化します。プレーンテキストデータキーは、ボリュームがインスタンスにアタッチされる限り、メモリ内で維持されます。

詳細については、*AWS Key Management Service デベロッパーガイド*の[Amazon Elastic Block Store (Amazon EBS) で AWS KMSを使用する方法](https://docs.aws.amazon.com/kms/latest/developerguide/services-ebs.html)および[Amazon EC2 の例 2](https://docs.aws.amazon.com/kms/latest/developerguide/ct-ec2two.html)を参照してください。

## 使用できない KMS キーがデータキーに及ぼす影響
<a name="unusable-keys"></a>

KMS キーが使用できなくなると、その影響はほぼ即時に表れます (最終的な一貫性の対象となります)。KMS キーのキーステータスは新しい条件を反映して変化し、暗号化オペレーションで KMS キーを使用するすべてのリクエストは失敗します。

KMS キーを使用不可にするアクションを実行しても、EC2 インスタンスまたはアタッチされた EBS ボリュームに対して直ちに影響が及ぶことはありません。Amazon EC2 は、ボリュームがインスタンスにアタッチされている間、KMS キーではなくデータキーを使用してすべてのディスク I/O を暗号化します。

ただし、暗号化された EBS ボリュームが EC2 インスタンスからデタッチされると、Amazon EBS は Nitro ハードウェアからデータキーを削除します。次回、暗号化された EBS ボリュームが EC2 インスタンスにアタッチされると、アタッチメントは失敗します。これは、Amazon EBS は KMS キーを使用してボリュームの暗号化されたデータキーを復号できないためです。EBS ボリュームを再度使用するには、KMS キーを再度使用可能にする必要があります。

**ヒント**  
使用不可にする KMS キーから生成されたデータキーで暗号化された EBS ボリュームのデータにアクセスする必要がなくなった場合は、KMS キーを使用不可にする前に EC2 インスタンスから EBS ボリュームをデタッチすることをお勧めします。

詳細については、「*AWS Key Management Service デベロッパーガイド*」の「[AWS KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#unusable-kms-keys)」を参照してください。

# Amazon EBS 暗号化の要件
<a name="ebs-encryption-requirements"></a>

開始する前に、以下の要件が満たされていることを確認します。

**Topics**
+ [

## サポートされるボリュームタイプ
](#ebs-encryption-volume-types)
+ [

## サポートされるインスタンスタイプ
](#ebs-encryption_supported_instances)
+ [

## ユーザーのアクセス許可
](#ebs-encryption-permissions)
+ [

## インスタンスの権限
](#ebs-encryption-instance-permissions)

## サポートされるボリュームタイプ
<a name="ebs-encryption-volume-types"></a>

暗号化は、すべての EBS ボリュームタイプでサポートされます。暗号化されたボリュームでは、暗号化されていないボリュームと同じ IOPS パフォーマンスが期待できます。遅延に対する影響は最小限に抑えられます。暗号化されていないボリュームにアクセスするのと同じ方法で、暗号化されたボリュームにアクセスできます。暗号化と復号は透過的に処理され、ユーザーやアプリケーションから追加の操作を必要としません。

## サポートされるインスタンスタイプ
<a name="ebs-encryption_supported_instances"></a>

Amazon EBS 暗号化は、すべての[現行世代](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#current-gen-instances)および[前世代](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#previous-gen-instances)のインスタンスタイプで利用できます。

## ユーザーのアクセス許可
<a name="ebs-encryption-permissions"></a>

EBS 暗号化に KMS キーを使用する場合、KMS キーポリシーは、必要な AWS KMS アクションにアクセスできるすべてのユーザーがこの KMS キーを使用して EBS リソースを暗号化または復号できるようにします。EBS 暗号化を使用するには、次のアクションを呼び出す許可をユーザーに付与する必要があります。
+ `kms:CreateGrant`
+ `kms:Decrypt`
+ `kms:DescribeKey`
+ `kms:GenerateDataKeyWithoutPlainText`
+ `kms:ReEncrypt`

**ヒント**  
最小権限のプリンシパルに従うには、`kms:CreateGrant` へのフルアクセスを許可しないでください。代わりに、次の例に示すように、 AWS サービスによってユーザーに代わって権限が作成された場合にのみ、 `kms:GrantIsForAWSResource`条件キーを使用して KMS キーに対する権限の作成をユーザーに許可します。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "kms:CreateGrant",
            "Resource": [
                "arn:aws:kms:us-east-2:123456789012:key/abcd1234-a123-456d-a12b-a123b4cd56ef"
            ],
            "Condition": {
                "Bool": {
                    "kms:GrantIsForAWSResource": true
                }
            }
        }
    ]
}
```

------

詳細については、 *AWS Key Management Service デベロッパーガイド*の「デフォルトキー[ポリシー」セクションの AWS 「アカウントへのアクセスを許可し、IAM ポリシーを有効にする](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-root-enable-iam)」を参照してください。 ****

## インスタンスの権限
<a name="ebs-encryption-instance-permissions"></a>

インスタンスが暗号化された AMI、ボリューム、またはスナップショットと通信しようとすると、インスタンスの ID 専用ロールに KMS キーグラントが発行されます。ID 専用ロールは、インスタンスがユーザーに代わって暗号化された AMI、ボリューム、またはスナップショットを操作するために使用する IAM ロールです。

ID のみのロールは、手動で作成または削除する必要はなく、ポリシーも関連付けられていません。また、ID のみのロール認証情報にはアクセスできません。

**注記**  
ID 専用ロールは、インスタンス上のアプリケーションが Amazon S3 オブジェクトや Dynamo DB テーブルなどの他の AWS KMS 暗号化されたリソースにアクセスするために使用されません。これらのオペレーションは、Amazon EC2 インスタンスロールの認証情報、またはインスタンスで設定したその他の AWS 認証情報を使用して実行されます。

ID のみのロールには、[サービスコントロールポリシー](https://docs.aws.amazon.com//organizations/latest/userguide/orgs_manage_policies_scps.html) (SCP) と [KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) キーポリシーが適用されます。SCP キーまたは KMS キーが KMS キーへの ID 専用ロールアクセスを拒否すると、暗号化されたボリュームで、または暗号化された AMI やスナップショットを使用して EC2 インスタンスを起動できないことがあります。

`aws:SourceIp`、、、または `aws:SourceVpce` AWS グローバル条件キーを使用して、ネットワークの場所に基づいてアクセスを拒否する SCP `aws:VpcSourceIp``aws:SourceVpc`またはキーポリシーを作成する場合は、これらのポリシーステートメントがインスタンスのみのロールに適用されないようにする必要があります。ポリシーの例については、「[データペリメータポリシーの例](https://github.com/aws-samples/data-perimeter-policy-examples/tree/main)」を参照してください。

ID 専用ロール ARN は次の形式を使用します:

```
arn:aws-partition:iam::account_id:role/aws:ec2-infrastructure/instance_id
```

キーグラントがインスタンスに発行されると、キーグラントはそのインスタンス固有のロール割り当てセッションに発行されます。被付与者のプリンシパル ARN は以下の形式を使用します:

```
arn:aws-partition:sts::account_id:assumed-role/aws:ec2-infrastructure/instance_id
```

# デフォルトで Amazon EBS の暗号化を有効化
<a name="encryption-by-default"></a>

作成した新しい EBS ボリュームとスナップショットコピーの暗号化を強制するように AWS アカウントを設定できます。例えば、Amazon EBS は、インスタンスの起動時に作成された EBS ボリュームと、暗号化されていないスナップショットからコピーしたスナップショットを暗号化します。暗号化されていない EBS リソースから暗号化された EBS リソースへの移行の例については、[暗号化されていないリソースの暗号化](ebs-encryption.md#encrypt-unencrypted)を参照してください。

デフォルトでは、暗号化は既存の EBS ボリュームまたはスナップショットには影響しません。

**考慮事項**
+ デフォルトでの暗号化はリージョン固有の設定です。リージョンに対して有効にした場合、そのリージョン内の個々のボリュームまたはスナップショットに対して無効にすることはできません。
+ デフォルトで Amazon EBS 暗号化は、すべての[現行世代](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#current-gen-instances)および[前世代](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#previous-gen-instances)のインスタンスタイプでサポートされています。
+ スナップショットをコピーして、新しい KMS キーで暗号化すると、完全な (増分ではない) コピーが作成されます。その結果、追加のストレージコストが発生します。

------
#### [ Console ]

**リージョンの暗号化をデフォルトで有効にするには**

1. Amazon EC2 コンソール ([https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)) を開きます。

1. ナビゲーションバーから、使用するリージョンを選択します。

1. ナビゲーションペインの [**EC2 ダッシュボード**] を選択します。

1. ページの右上で、**[アカウントの属性]**、**[データ保護とセキュリティ]** の順に選択します。

1. **[EBS 暗号化]** セクションで、**[管理]** を選択します。

1. **[Enable]** (有効化) を選択します。は、デフォルトの暗号化キーとしてユーザーに代わって`aws/ebs`作成されたエイリアス AWS マネージドキー で保持するか、対称カスタマーマネージド暗号化キーを選択します。

1. **[Update EBS encryption]** (EBS 暗号化を更新する) を選択します。

------
#### [ AWS CLI ]

**デフォルトの暗号化設定を表示するには**

[get-ebs-encryption-by-default](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-ebs-encryption-by-default.html) コマンドを使用します。
+ 特定のリージョンの場合

  ```
  aws ec2 get-ebs-encryption-by-default --region region
  ```
+ アカウントの全リージョンの場合

  ```
  echo -e "Region      \t Encrypt \t Key"; \
  echo -e "----------- \t ------- \t -------" ; \
  for region in $(aws ec2 describe-regions --region us-east-1 --query "Regions[*].[RegionName]" --output text);
  do
      default=$(aws ec2 get-ebs-encryption-by-default --region $region --query "{Encryption_By_Default:EbsEncryptionByDefault}" --output text); 
      kms_key=$(aws ec2 get-ebs-default-kms-key-id --region $region | jq '.KmsKeyId'); 
      echo -e "$region \t $default \t\t $kms_key"; 
  done
  ```

**暗号化をデフォルトで有効にするには**

[enable-ebs-encryption-by-default](https://docs.aws.amazon.com/cli/latest/reference/ec2/enable-ebs-encryption-by-default.html) コマンドを使用します。
+ 特定のリージョンの場合

  ```
  aws ec2 enable-ebs-encryption-by-default --region region
  ```
+ アカウントの全リージョンの場合

  ```
  echo -e "Region      \t Encrypt \t Key"; \
  echo -e "----------- \t ------- \t -------" ; \
  for region in $(aws ec2 describe-regions --region us-east-1 --query "Regions[*].[RegionName]" --output text); 
  do
      default=$(aws ec2 enable-ebs-encryption-by-default --region $region --query "{Encryption_By_Default:EbsEncryptionByDefault}" --output text); 
      kms_key=$(aws ec2 get-ebs-default-kms-key-id --region $region | jq '.KmsKeyId'); 
      echo -e "$region \t $default \t\t $kms_key"; 
  done
  ```

**暗号化をデフォルトで無効にするには**

[disable-ebs-encryption-by-default](https://docs.aws.amazon.com/cli/latest/reference/ec2/disable-ebs-encryption-by-default.html) コマンドを使用します。
+ 特定のリージョンの場合

  ```
  aws ec2 disable-ebs-encryption-by-default --region region
  ```
+ アカウントの全リージョンの場合

  ```
  echo -e "Region      \t Encrypt \t Key"; \
  echo -e "----------- \t ------- \t -------" ; \
  for region in $(aws ec2 describe-regions --region us-east-1 --query "Regions[*].[RegionName]" --output text); 
  do
      default=$(aws ec2 disable-ebs-encryption-by-default --region $region --query "{Encryption_By_Default:EbsEncryptionByDefault}" --output text); 
      kms_key=$(aws ec2 get-ebs-default-kms-key-id --region $region | jq '.KmsKeyId'); 
      echo -e "$region \t $default \t\t $kms_key"; 
  done
  ```

------
#### [ PowerShell ]

**デフォルトの暗号化設定を表示するには**

[Get-EC2EbsEncryptionByDefault](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2EbsEncryptionByDefault.html) コマンドレットを使用します。
+ 特定のリージョンの場合

  ```
  Get-EC2EbsEncryptionByDefault -Region region
  ```
+ アカウントの全リージョンの場合

  ```
  (Get-EC2Region).RegionName |
      ForEach-Object {
      [PSCustomObject]@{ 
          Region                    = $_
          EC2EbsEncryptionByDefault = Get-EC2EbsEncryptionByDefault -Region $_
          EC2EbsDefaultKmsKeyId     = Get-EC2EbsDefaultKmsKeyId -Region $_ 
      } } |
      Format-Table -AutoSize
  ```

**暗号化をデフォルトで有効にするには**

[Enable-EC2EbsEncryptionByDefault](https://docs.aws.amazon.com/powershell/latest/reference/items/Enable-EC2EbsEncryptionByDefault.html) コマンドレットを使用します。
+ 特定のリージョンの場合

  ```
  Enable-EC2EbsEncryptionByDefault -Region region
  ```
+ アカウントの全リージョンの場合

  ```
  (Get-EC2Region).RegionName |
      ForEach-Object { 
      [PSCustomObject]@{
          Region                    = $_
          EC2EbsEncryptionByDefault = Enable-EC2EbsEncryptionByDefault -Region $_
          EC2EbsDefaultKmsKeyId     = Get-EC2EbsDefaultKmsKeyId -Region $_ 
      } } |
      Format-Table -AutoSize
  ```

**暗号化をデフォルトで無効にするには**

[Disable-EC2EbsEncryptionByDefault](https://docs.aws.amazon.com/powershell/latest/reference/items/Disable-EC2EbsEncryptionByDefault.html) コマンドレットを使用します。
+ 特定のリージョンの場合

  ```
  Disable-EC2EbsEncryptionByDefault -Region region
  ```
+ アカウントの全リージョンの場合

  ```
  (Get-EC2Region).RegionName |
      ForEach-Object { 
      [PSCustomObject]@{
          Region                    = $_
          EC2EbsEncryptionByDefault = Disable-EC2EbsEncryptionByDefault -Region $_
          EC2EbsDefaultKmsKeyId     = Get-EC2EbsDefaultKmsKeyId -Region $_ 
      } } |
      Format-Table -AutoSize
  ```

------

既存のスナップショットまたは暗号化されたボリュームに関連付けられている KMS キー を変更することはできません。ただし、スナップショットコピーオペレーション中に別の KMS キー を関連付けて、コピーしたスナップショットを新しい KMS キー で暗号化できます。

## EBS リソースの暗号化
<a name="encryption-parameters"></a>

EBS ボリュームを暗号化するには、[デフォルトでの暗号化](encryption-by-default.md)を使用するか、暗号化するボリュームを作成するときに暗号化を有効にします。

ボリュームを暗号化する場合、ボリュームの暗号化に使用する対称暗号化 KMS キーを指定できます。KMS キー が指定されていない場合、暗号化に使用される KMS キー はソーススナップショットの暗号化状態とその所有権によって異なります。詳細については、[暗号化結果の表](encryption-examples.md#ebs-volume-encryption-outcomes)を参照してください。

**注記**  
API または を使用して KMS キー AWS CLI を指定する場合は、 が KMS キーを非同期的に AWS 認証することに注意してください。無効な KMS キー ID、エイリアス、または ARN を指定すると、アクションは完了したように見える場合がありますが、最終的には失敗します。

既存のスナップショットまたはボリュームに関連付けられている KMS キー を変更することはできません。ただし、スナップショットコピーオペレーション中に別の KMS キー を関連付けて、コピーしたスナップショットを新しい KMS キー で暗号化できます。

### 作成時の空のボリュームの暗号化
<a name="new-encrypted-volumes"></a>

新しい空の EBS ボリュームを作成するときは、特定のボリューム作成オペレーションで暗号化を有効にすることで暗号化できます。デフォルトで EBS 暗号化を有効にしたボリュームでは、EBS 暗号化用のデフォルト KMS キー を使用した暗号化が、自動的に実行されます。または、ボリュームの作成オペレーションごとに異なる対称暗号化 KMS キーを指定することもできます。ボリュームは最初に使用可能になった時点で暗号化されているため、データは常に保護されています。詳細な手順については、[Amazon EBS ボリュームの作成](ebs-creating-volume.md)を参照してください。

デフォルトでは、ボリュームの作成時に選択した KMS キー が、ボリュームから作成したスナップショットとそれらの暗号化されたスナップショットから復元したボリュームを暗号化します。暗号化されたボリュームまたはスナップショットから暗号化を削除することはできません。つまり、暗号化されたスナップショット、または暗号化されたスナップショットのコピーから復元されたボリュームは、常に暗号化されます。

暗号化されたボリュームのパブリックスナップショットはサポートされていませんが、暗号化されたスナップショットを特定のアカウントと共有できます。詳細な手順については、[Amazon EBS スナップショットを他の AWS アカウントと共有する](ebs-modifying-snapshot-permissions.md)を参照してください。

### 暗号化されていないリソースの暗号化
<a name="encrypt-unencrypted"></a>

暗号化されていない既存のボリュームまたはスナップショットを直接暗号化することはできません。

暗号化されていないボリュームを暗号化するには、そのボリュームのスナップショットを作成し、そのスナップショットを使用して新しい暗号化されたボリュームを作成します。詳細については、「[スナップショットの作成](ebs-create-snapshot.md)」および「[ボリュームの作成](ebs-creating-volume.md)」を参照してください。

暗号化されていないスナップショットを暗号化するには、そのスナップショットの暗号化されたコピーを作成します。詳細については、「[スナップショットをコピーする](ebs-copy-snapshot.md)」を参照してください。

アカウントでデフォルトで暗号化を有効にすると、暗号化されていないスナップショットから作成されたボリュームとスナップショットコピーは常に暗号化されます。それ以外の場合は、リクエストで暗号化パラメータを指定する必要があります。詳細については、「[デフォルトで暗号化の有効化](encryption-by-default.md)」を参照してください。

# Amazon EBS 暗号化に使用される AWS KMS キーのローテーション
<a name="kms-key-rotation"></a>

暗号化のベストプラクティスでは、暗号化キーの広範な再利用を推奨していません。

Amazon EBS の暗号化に使用する新しい暗号化マテリアルを作成するには、カスタマーマネージドキーを作成し、アプリケーションを変更してその新しい KMS キーを使用するか、または、既存のカスタマーマネージドキーの自動キーローテーションを有効にすることができます。

カスタマーマネージドキーの自動キーローテーションを有効にすると、 は KMS キーの新しい暗号化マテリアルを毎年 AWS KMS 生成します。 は暗号化マテリアルのすべての以前のバージョン AWS KMS を保存し、その KMS キーマテリアルで以前に暗号化されたボリュームとスナップショットを引き続き復号して使用できます。 AWS KMS は、KMS キーを削除するまでローテーションされたキーマテリアルを削除しません。

ローテーションされたカスタマーマネージドキーを使用して新しいボリュームまたはスナップショットを暗号化すると、 は現在 (新しい) キーマテリアル AWS KMS を使用します。ローテーションされたカスタマーマネージドキーを使用してボリュームまたはスナップショットを復号化する場合、 AWS KMS はそれを暗号化するために使用された暗号化マテリアルバージョンを使用します。ボリュームまたはスナップショットが以前のバージョンの暗号化マテリアルで暗号化されている場合、 AWS KMS は引き続きその以前のバージョンを使用して復号します。 AWS KMS は、キーローテーション後に新しい暗号化マテリアルを使用するように、以前に暗号化されたボリュームまたはスナップショットを再暗号化しません。これらは、最初に暗号化された暗号化マテリアルで暗号化されたままです。ローテーションされたカスタマーマネージドキーは、コードを変更せずにアプリケーションや AWS サービスで安全に使用できます。

**注記**  
自動キーローテーションは、 が AWS KMS 作成するキーマテリアルを持つ対称カスタマーマネージドキーでのみサポートされます。
AWS KMS は AWS マネージドキー 毎年自動的にローテーションします。 AWS マネージドキーのキーローテーションを有効化または無効化することはできません。

詳細については、「*AWS Key Management Service デベロッパーガイド*」の「[How key rotation works](https://docs.aws.amazon.com//kms/latest/developerguide/rotate-keys.html#rotate-keys-how-it-works)」を参照してください。

# Amazon EBS 暗号化の例
<a name="encryption-examples"></a>

暗号化された EBS リソースを作成すると、ボリューム作成パラメータまたは AMI やインスタンスのブロックデバイスマッピングで別の カスタマーマネージド型キー を指定しない限り、アカウントの EBS 暗号化のデフォルト KMS キー によって暗号化されます。

次の例では、ボリュームとスナップショットの暗号化状態を管理する方法を示します。暗号化のケースの完全なリストについては、[暗号化の結果の表](#ebs-volume-encryption-outcomes)を参照してください。

**Topics**
+ [

## 暗号化されていないボリュームを復元する (デフォルトでの暗号化が有効になっていない場合)
](#volume-account-off)
+ [

## 暗号化されていないボリュームを復元する (デフォルトでの暗号化が有効になっている場合)
](#volume-account-on)
+ [

## 暗号化されていないスナップショットをコピーする (デフォルトでの暗号化が有効になっていない場合)
](#snapshot-account-off)
+ [

## 暗号化されていないスナップショットをコピーする (デフォルトでの暗号化が有効になっている場合)
](#snapshot-account-on)
+ [

## 暗号化ボリュームを再暗号化する
](#reencrypt-volume)
+ [

## 暗号化スナップショットを再暗号化する
](#reencrypt-snapshot)
+ [

## 暗号化されたボリュームと暗号化されていないボリュームとの間でデータを移行する
](#migrate-data-encrypted-unencrypted)
+ [

## 暗号化の結果
](#ebs-volume-encryption-outcomes)

## 暗号化されていないボリュームを復元する (デフォルトでの暗号化が有効になっていない場合)
<a name="volume-account-off"></a>

デフォルトでの暗号化を有効にしないと、暗号化されていないスナップショットから復元されたボリュームは、デフォルトで暗号化されません。ただし、`Encrypted` パラメータと、必要に応じて `KmsKeyId` パラメータを設定して、結果のボリュームを暗号化することができます。以下の図は、そのプロセスを示したものです。

![\[暗号化されていないスナップショットからボリュームを作成する場合は、KMS キーを指定して暗号化されたボリュームを作成します。\]](http://docs.aws.amazon.com/ja_jp/ebs/latest/userguide/images/volume-encrypt-account-off.png)


`KmsKeyId` パラメータを省略すると、結果のボリュームは EBS 暗号化のデフォルト KMS キー を使用して暗号化されます。ボリュームを別の KMS キー に暗号化するには、KMS キー ID を指定する必要があります。

詳細については、「[Amazon EBS ボリュームの作成](ebs-creating-volume.md)」を参照してください。

## 暗号化されていないボリュームを復元する (デフォルトでの暗号化が有効になっている場合)
<a name="volume-account-on"></a>

デフォルトでの暗号化を有効にした場合、暗号化されていないスナップショットから復元されたボリュームには暗号化が必須であり、デフォルトの KMS キー を使用するために暗号化パラメータは必要ありません。以下の図に、このデフォルトの簡単なケースを示しています。

![\[暗号化されていないスナップショットからボリュームを作成するときに、デフォルトで暗号化が有効になっている場合、デフォルトの KMS キーを使用して暗号化されたボリュームが作成されます。\]](http://docs.aws.amazon.com/ja_jp/ebs/latest/userguide/images/volume-encrypt-account-on.png)


復元したボリュームを対称カスタマーマネージド型暗号化キーに暗号化する場合は、[暗号化されていないボリュームを復元する (デフォルトでの暗号化が有効になっていない場合)](#volume-account-off) に示すように `Encrypted` と `KmsKeyId` の両方のパラメータを指定する必要があります。

## 暗号化されていないスナップショットをコピーする (デフォルトでの暗号化が有効になっていない場合)
<a name="snapshot-account-off"></a>

デフォルトでの暗号化を有効にしないと、暗号化されていないスナップショットのコピーは、デフォルトで暗号化されません。ただし、`Encrypted` パラメータと、必要に応じて `KmsKeyId` パラメータを設定して、結果のスナップショットを暗号化することができます。`KmsKeyId` を省略すると、結果のスナップショットはデフォルトの KMS キー に暗号化されます。ボリュームを別の対称暗号化 KMS キーに暗号化するには、KMS キー ID を指定する必要があります。

以下の図は、そのプロセスを示したものです。

![\[暗号化されていないスナップショットから暗号化されたスナップショットを作成します。\]](http://docs.aws.amazon.com/ja_jp/ebs/latest/userguide/images/snapshot-encrypt-account-off.png)


EBS ボリュームを暗号化するには、暗号化されていないスナップショットを暗号化されたスナップショットにコピーし、その暗号化されたスナップショットからボリュームを作成することができます。詳細については、[Amazon EBS スナップショットのコピー](ebs-copy-snapshot.md)を参照してください。

## 暗号化されていないスナップショットをコピーする (デフォルトでの暗号化が有効になっている場合)
<a name="snapshot-account-on"></a>

デフォルトでの暗号化を有効にした場合、暗号化されていないスナップショットのコピーには暗号化が必須であり、デフォルトの KMS キー を使用する場合は、暗号化パラメータは必要ありません。このデフォルトのケースを次の図に示します。

![\[暗号化されていないスナップショットから暗号化されたスナップショットを作成します。\]](http://docs.aws.amazon.com/ja_jp/ebs/latest/userguide/images/snapshot-encrypt-account-on.png)


## 暗号化ボリュームを再暗号化する
<a name="reencrypt-volume"></a>

`CreateVolume` アクションが暗号化されたスナップショットに対して実行されるときは、別の KMS キー でそれを再暗号化することができます。以下の図は、そのプロセスを示したものです。この例では、KMS キー A と KMS キー B の 2 つの KMS キー を所有しています。ソーススナップショットは KMS キー A によって暗号化されています。ボリュームの作成中に、パラメータとして指定された KMS キー B の KMS キー ID を使用して、ソースデータは自動的に復号され、次に KMS キー B によって再暗号化されます。

![\[暗号化されたスナップショットをコピーして、そのコピーを新しい KMS キー に暗号化します。\]](http://docs.aws.amazon.com/ja_jp/ebs/latest/userguide/images/volume-reencrypt.png)


詳細については、「[Amazon EBS ボリュームの作成](ebs-creating-volume.md)」を参照してください。

## 暗号化スナップショットを再暗号化する
<a name="reencrypt-snapshot"></a>

スナップショットをコピー時に暗号化する機能により、既に暗号化された自己所有のスナップショットに新しい対称暗号化 KMS キーを適用できます。結果として作成されたコピーから復元されたボリュームには、新しい KMS キー を使用してのみアクセスすることができます。以下の図は、そのプロセスを示したものです。この例では、KMS キー A と KMS キー B の 2 つの KMS キー を所有しています。ソーススナップショットは KMS キー A によって暗号化されています。コピー中に、パラメータとして指定された KMS キー B の KMS キー ID を使用して、ソースデータは自動的に KMS キー B によって再暗号化されます。

![\[暗号化されたスナップショットをコピーして、そのコピーを新しい KMS キー に暗号化します。\]](http://docs.aws.amazon.com/ja_jp/ebs/latest/userguide/images/snap-reencrypt.png)


関連するシナリオでは、共有されているスナップショットのコピーに新しい暗号化パラメータを適用するよう選択できます。デフォルトでは、コピーは、スナップショットの所有者によって共有された KMS キー を使用して暗号化されます。ただし、管理する別の KMS キー を使用して、共有スナップショットのコピーを作成することをお勧めします。これにより、元の KMS キー が侵害された場合や、所有者が何らかの理由で KMS キー を無効にした場合に、ボリュームへのアクセスが保護されます。詳細については、[暗号化とスナップショットのコピー](ebs-copy-snapshot.md#creating-encrypted-snapshots)を参照してください。

## 暗号化されたボリュームと暗号化されていないボリュームとの間でデータを移行する
<a name="migrate-data-encrypted-unencrypted"></a>

暗号化されているボリュームと暗号化されていないボリュームの両方に対してアクセス許可がある場合は、これらの間で自由にデータを転送できます。EC2 では、暗号化と復号化のオペレーションが透過的に実行されます。

### Linux インスタンス
<a name="migrate-data-encrypted-unencrypted-lin"></a>

例えば、**rsync** コマンドを使用してデータをコピーします。次のコマンドでは、移行元のデータは `/mnt/source` にあり、移行先のボリュームは `/mnt/destination` にマウントされています。

```
[ec2-user ~]$ sudo rsync -avh --progress /mnt/source/ /mnt/destination/
```

### Windows インスタンス
<a name="migrate-data-encrypted-unencrypted-win"></a>

例えば、**robocopy** コマンドを使用してデータをコピーします。次のコマンドでは、移行元のデータは `D:\` にあり、移行先のボリュームは `E:\` にマウントされています。

```
PS C:\> robocopy D:\sourcefolder E:\destinationfolder /e /copyall /eta
```

非表示のフォルダで問題が発生することを回避するために、ボリューム全体をコピーするのではなく、フォルダを使用することをお勧めします。

## 暗号化の結果
<a name="ebs-volume-encryption-outcomes"></a>



次の表に、設定可能な組み合わせごとの暗号化の結果を示します。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/ebs/latest/userguide/encryption-examples.html)

\$1 これは、 AWS アカウントとリージョンの EBS 暗号化に使用されるデフォルトのカスタマーマネージドキーです。デフォルトでは、これは EBS AWS マネージドキー に固有のものです。または、カスタマーマネージドキーを指定できます。

\$1\$1 これは、ボリュームの起動時に指定されたカスタマーマネージド型キーです。このカスタマーマネージドキーは、 AWS アカウントとリージョンのデフォルトのカスタマーマネージドキーの代わりに使用されます。