コーヒーが好きな木谷映見です。
様々な AWS KMS キーで、暗号化された EBS スナップショットのリージョン間コピーを試してみたいと思います。
今回は、単一の AWS アカウント内で実施します。
- 全体像
- ① AWS KMS で暗号化キーを作成する
- ② 作成した暗号化キーで暗号化 EBS ボリュームを作成する
- ③ 暗号化した EBS ボリュームからスナップショットを取得し、暗号化 EBS スナップショットを作成する
- ④ 別リージョンに暗号化 EBS スナップショットをコピーする
- さいごに
- 参考
全体像
今回実施するイメージです。
① AWS KMS で暗号化キーを作成する
② 作成した暗号化キーで暗号化 EBS ボリュームを作成する
③ 暗号化した EBS ボリュームからスナップショットを取得し、暗号化 EBS スナップショットを作成する
④ 別リージョンに暗号化 EBS スナップショットをコピーする
① AWS KMS で暗号化キーを作成する
今回登場する KMS キーを確認します。たくさんありますが、頑張って確認しましょう。
- ①-1 東京リージョンのAWS 管理のキー
- ①-2 東京リージョンのカスタマー管理のキー
- ①-3 東京リージョンのカスタマー管理のマルチリージョンキー
- ①-4 オレゴンリージョンのAWS 管理のキー
- ①-5 オレゴンリージョンのカスタマー管理のキー
- ①-3' 東京リージョン のカスタマー管理のマルチリージョンキーのレプリカ
東京リージョンの KMS キーで暗号化したスナップショットをオレゴンリージョンにコピーする際、オレゴンリージョンの KMS キーを選択します。
AWS KMS で利用できる KMS キーのタイプについて復習しておきましょう。
AWS 管理のキー、カスタマー管理のキー、AWS 所有のキー比較
AWS KMS で利用できる KMS キーの種類は 3 種類あり、主に以下の特徴があります。
KMS キータイプ | キーメタデータの表示 | KMS キーの管理 | 自動ローテーション |
---|---|---|---|
AWS 管理のキー | ○ | × | 1095 日 (3 年) ごとで固定 |
カスタマー管理のキー | ○ | ○ | 365 日 (1 年) ごとで、利用者側で有効化・設定できる |
AWS 所有のキー | × | × | 不定 |
AWS 所有のキーは、アカウントに関係なく AWS 側で管理されているキーです。利用者側で意識することはありません。
ですので今回は、AWS 管理のキーとカスタマー管理のキーを使って暗号化します。
マルチリージョンキーの仕組み
2021/6/16、KMS マルチリージョンキーが発表されています。それまで、KMS キーは単一リージョン固有のキーしかありませんでした。
キーを単一リージョンにするかマルチリージョンにするかは、キー作成時にのみ決定でき、後から変更できません。マルチリージョンキーは mrk-
で始まる固有のキー ID を持ちます。
マルチリージョンキーは、作成したリージョンと異なるリージョンにレプリケートして使用します。
作成元リージョンではプライマリキー、レプリケート先リージョンではレプリカキーと呼びます。
レプリカキーはプライマリキーと同じキー ID と共有プロパティを共有します。
それでは、KMS キーを準備していきましょう。
AWS 管理のキー準備
先ほどの図でいうと、以下 2 つです。
- ①-1 東京リージョンのAWS 管理のキー
- ①-4 オレゴンリージョンのAWS 管理のキー
AWS 管理のキーは、各サービスで暗号化する際に自動で作成されますのでここでは作成しません。のちに登場します。
カスタマー管理のキー準備
カスタマー管理のキーには単一リージョンキーとマルチリージョンキーがあります。順番に作成していきます。
カスタマー管理の単一リージョンキー
先ほどの図でいうと、以下 2 つです。
- ①-2 東京リージョンのカスタマー管理のキー
- ①-5 オレゴンリージョンのカスタマー管理のキー
①-2 東京リージョン のカスタマー管理のキー
まずは東京リージョンで KMS キーの作成を実施します。
AWS KMS のコンソール画面を開き、「キーの作成」をクリックします。
以下を選択し、次へをクリックします。
- キーのタイプ:対称
- キーの使用:暗号化および復号化
- キーマテリアルオリジン:KMS
- リージョンごと:単一リージョンキー
エイリアスを指定します。今回は「Single-region-key」としました。
説明とタグは任意で設定し、次へをクリックします。
キーの管理者を指定します。今回は現在のユーザだけ選択しました。
また、今回作成するキーはテスト用なので、キーの削除はチェックを入れておきます。次へをクリックします。
キーを使用できるユーザとロールを指定します。今回は現在のユーザだけ選択しました。次へをクリックします。
最後に確認画面が表示されます。完了をクリックします。
東京リージョンのカスタマー管理のキーができました。
①-5 オレゴンリージョンのカスタマー管理のキー
オレゴンリージョンで KMS キーの作成を実施します。
手順は東京リージョンの手順と同様でのため割愛します。
エイリアスは「Single-region-key-oregon」としました。
カスタマー管理のマルチリージョンキー
先ほどの図でいうと、以下 2 つです。
- ①-3 東京リージョンのカスタマー管理のマルチリージョンキー
- ①-3' 東京リージョンのカスタマー管理のマルチリージョンキーのレプリカ
①-3 東京リージョンのカスタマー管理のマルチリージョンキー
東京リージョンで KMS キーの作成を実施します。
作成手順はカスタマー管理の単一リージョンキーとほぼ同様で、リージョンキーの選択時に「マルチリージョンキー」を選択します。
エイリアスは「Multi-region-key」としました。
①-3' 東京リージョンのカスタマー管理のマルチリージョンキーのレプリカ
前の手順で作成した①-3 東京リージョンのカスタマー管理のマルチリージョンキーを選択し、「リージョンごと」タブを開いて「新しいレプリカキーを作成」をクリックします。
レプリカキーを作成するリージョンを選択します。ここでは「米国西部(オレゴン)us-west-2」を選択して次へをクリックします。
「ラベルを追加」画面では、デフォルトでプライマリキーの情報が入力されています。今回はオレゴンリージョンにレプリケートするレプリカキーであることが分かるように、エイリアスを「Multi-region-key-rep-oregon」としておきます。
説明とタグも任意で設定し、次へをクリックします。
キーの管理者とキーを使用できるユーザとロールを指定します。ここは今までのカスタマー管理のキー作成方法と同じなので割愛します。最後に確認画面が表示され、完了をクリックすれば、レプリカキー作成完了です。
オレゴンリージョンの KMS コンソール画面でも、レプリカキーが確認できます。
② 作成した暗号化キーで暗号化 EBS ボリュームを作成する
頑張って準備した KMS キーで、暗号化 EBS ボリュームを作成します。EBS ボリューム作成時に KMS キーで暗号化しておけば、スナップショットも同様に暗号化されます。
今回は東京リージョンで 3 つ、以下の図のように、順番に暗号化 EBS ボリュームを作成していきます。
- ②-1 AWS 管理のキーで暗号化 EBS ボリュームを作成
- ②-2 カスタマー管理の単一リージョンキーで暗号化 EBS ボリュームを作成
- ②-3 カスタマー管理のマルチリージョンキーで暗号化 EBS ボリュームを作成
②-1 AWS 管理のキーで暗号化 EBS ボリュームを作成
EC2 マネジメントコンソールで [Elastic Block Store] - [ボリューム] を選択し、「ボリュームの作成」をクリックします。
暗号化のテストをするだけなので、サイズを減らしておきます(今回は 8 GiB にしました)。
「このボリュームを暗号化する」にチェックし、KMS キーを選択します。
「(デフォルト)aws/ebs」を選択します。
AWS 管理のキーで暗号化した EBS ボリュームであることが分かるように、Name タグ「EBS-encrypted-with-default-key」と値を設定しました。
最後に「ボリュームの作成」をクリックすると、暗号化 EBS ボリュームが作成されます。また、暗号化の際に AWS 管理のキーが自動で作成されます。
補足:EBSのデフォルト暗号化が有効になっているかどうか
EBS には、作成した新しい EBS ボリュームとスナップショットコピーの暗号化を強制するように AWS アカウントを設定できる、デフォルト暗号化の機能があります。
デフォルト暗号化の機能が有効になっているかどうかは、EC2 マネジメントコンソールの [EC2 ダッシュボード] の [アカウントの属性] で「EBS 暗号化」をクリックすると確認できます。
EBS のデフォルト暗号化はリージョン固有の設定ですので、デフォルトで EBS を暗号化させたい全てのリージョンで有効化設定する必要があります。
デフォルトでは無効化になっており、本記事でもデフォルト暗号化は無効でテストしています。
参考: Amazon EBS 暗号化 - Amazon Elastic Compute Cloud
②-2 カスタマー管理の単一リージョンキーで暗号化 EBS ボリュームを作成
基本は「②-1 AWS 管理のキーで暗号化 EBS ボリュームを作成」と同様に作成します。
KMS キーの選択で「Single-region-key」を選択し、カスタマー管理の単一リージョンキーで暗号化した EBS ボリュームであることが分かるように、Name タグは「EBS-encrypted-with-Single-region-key」と値を設定しました。
②-3 カスタマー管理のマルチリージョンキーで暗号化 EBS ボリュームを作成
基本は「②-1 AWS 管理のキーで暗号化 EBS ボリュームを作成」と同様に作成します。
KMS キーの選択で「Multi-region-key」を選択し、マルチリージョンキーで暗号化した EBS ボリュームであることが分かるように、Name タグは「EBS-encrypted-with-Multi-region-key」と値を設定しました。
③ 暗号化した EBS ボリュームからスナップショットを取得し、暗号化 EBS スナップショットを作成する
暗号化した EBS ボリュームから、スナップショットを作成します。
以下の図のように、順番に暗号化 EBS ボリュームを作成していきます。
- ③-1 AWS 管理のキーで暗号化した EBS ボリュームからスナップショット作成
- ③-2 カスタマー管理の単一リージョンキーで暗号化した EBS ボリュームからスナップショット作成
- ③-3 カスタマー管理のマルチリージョンキーで暗号化した EBS ボリュームからスナップショット作成
③-1 AWS 管理のキーで暗号化した EBS ボリュームからスナップショット作成
EC2 マネジメントコンソールで、[Elastic Block Store] - [ボリューム] を開き、「②-1 AWS 管理のキーで暗号化 EBS ボリュームを作成」で作成したName タグ「EBS-encrypted-with-default-key」のボリュームにチェックします。「アクション」から「スナップショットの作成」をクリックします。
AWS 管理のキーで暗号化された EBS ボリュームのスナップショットであることが分かるように、説明と Name タグに「snap-EBS-encrypted-with-default-key」と入力し、「スナップショットの作成」をクリックします。
③-2 カスタマー管理の単一リージョンキーで暗号化した EBS ボリュームからスナップショット作成
EC2 マネジメントコンソールで、[Elastic Block Store] - [ボリューム] を開き、「②-2 カスタマー管理の単一リージョンキーで暗号化 EBS ボリュームを作成」で作成したName タグ「EBS-encrypted-with-Single-region-key」のボリュームにチェックします。「アクション」から「スナップショットの作成」をクリックします。
カスタマー管理の単一リージョンキーで暗号化した EBS ボリュームのスナップショットであることが分かるように、説明と Name タグに「snap-EBS-encrypted-with-Single-region-key」と入力し、「スナップショットの作成」をクリックします。
③-3 カスタマー管理のマルチリージョンキーで暗号化した EBS ボリュームからスナップショット作成
EC2 マネジメントコンソールで、[Elastic Block Store] - [ボリューム] を開き、「②-3 カスタマー管理のマルチリージョンキーで暗号化 EBS ボリュームを作成」で作成したName タグ「EBS-encrypted-with-Multi-region-key」のボリュームにチェックします。「アクション」から「スナップショットの作成」をクリックします。
マルチリージョンキーで暗号化した EBS ボリュームのスナップショットであることが分かるように、説明と Name タグに「snap-EBS-encrypted-with-Multi-region-key」と入力し、「スナップショットの作成」をクリックします。
④ 別リージョンに暗号化 EBS スナップショットをコピーする
東京リージョンで作成した暗号化 EBS スナップショットを、オレゴンリージョンにコピーします。
以下の図のように、順番に暗号化 EBS スナップショットをコピーしていきます。
- ④-1 AWS 管理のキーで暗号化した EBS スナップショットをコピー
- ④-2 カスタマー管理の単一リージョンキーで暗号化した EBS スナップショットをコピー
- ④-3 カスタマー管理のマルチリージョンキーで暗号化した EBS スナップショットをコピー
④-1 AWS 管理のキーで暗号化した EBS スナップショットをコピー
EC2 マネジメントコンソールで、[Elastic Block Store] - [スナップショット] を開き、「③-1 AWS 管理のキーで暗号化した EBS ボリュームからスナップショット作成」で作成したスナップショット「snap-EBS-encrypted-with-default-key」にチェックします。「アクション」から「スナップショットのコピー」をクリックします。
送信先リージョンでオレゴンリージョン(us-west-2)を選択し、KMS キーで「(デフォルト)aws/ebs」を選択します。
「スナップショットをコピー」をクリックします。
スナップショットをオレゴンリージョンにコピーできました。
オレゴンリージョンの EC2 マネジメントコンソールで [Elastic Block Store] - [スナップショット] を開いて確認すると、東京リージョンからコピーしてきた暗号化スナップショットが確認できます。
④-2 カスタマー管理の単一リージョンキーで暗号化した EBS スナップショットをコピー
EC2 マネジメントコンソールで、[Elastic Block Store] - [スナップショット] を開き、「③-2 カスタマー管理の単一リージョンキーで暗号化した EBS ボリュームからスナップショット作成」で作成したスナップショット「snap-EBS-encrypted-with-Single-region-key」にチェックします。「アクション」から「スナップショットのコピー」をクリックします。
送信先リージョンでオレゴンリージョン(us-west-2)を選択し、KMS キーで「Single-region-key-Oregon」を選択します。
「スナップショットをコピー」をクリックすると、スナップショットをオレゴンリージョンにコピーできます。
オレゴンリージョンの EC2 マネジメントコンソールで [Elastic Block Store] - [スナップショット] を開いて確認すると、東京リージョンからコピーしてきた暗号化スナップショットが確認できます。
④-3 カスタマー管理のマルチリージョンキーで暗号化した EBS スナップショットをコピー
EC2 マネジメントコンソールで、[Elastic Block Store] - [スナップショット] を開き、「③-3 カスタマー管理のマルチリージョンキーで暗号化した EBS ボリュームからスナップショット作成」で作成したスナップショット「snap-EBS-encrypted-with-Multi-region-key」にチェックします。「アクション」から「スナップショットのコピー」をクリックします。
送信先リージョンでオレゴンリージョン(us-west-2)を選択し、KMS キーで「Multi-region-key-rep-Oregon」を選択します。
「スナップショットをコピー」をクリックすると、スナップショットをオレゴンリージョンにコピーできます。
オレゴンリージョンの EC2 マネジメントコンソールで [Elastic Block Store] - [スナップショット] を開いて確認すると、東京リージョンからコピーしてきた暗号化スナップショットが確認できます。
補足
選択する KMS キー
今回は東京リージョンからオレゴンリージョンにコピーする際、同じキータイプの KMS キーを各リージョンで作成して選択しましたが、別のキータイプでもリージョン間コピーできます。
例えば、東京リージョンで AWS 管理のキーで暗号化したスナップショットを、オレゴンリージョンのカスタマー管理の単一リージョンキーで暗号化することもできます。
コピー中の暗号化
スナップショットを別リージョンにコピー中は Amazon S3 のサーバー側の暗号化で保護されているそうです。
Amazon EBS スナップショットのコピー - Amazon Elastic Compute Cloud
Amazon EBS を使用すると、Amazon S3 に格納するボリュームのポイントインタイムスナップショットを作成できます。スナップショットを作成し、Simple Storage Service (Amazon S3) へのコピーが完了した後 (スナップショットのステータスが completed)、スナップショットを AWS リージョン間や同じリージョン内でコピーできます。Amazon S3 のサーバー側の暗号化 (256 ビット AES) は、コピーオペレーション中に転送中のスナップショットのデータを保護します。
さいごに
暗号化されたEBSスナップショットのリージョン間コピーについて、KMS キーの違いやコピー手順が確認できました。
AWS 認定試験でも特に「AWS Certified Solutions Architect – Associate」「AWS Certified Solutions Architect - Professional」「AWS Certified Security – Specialty」などの試験で問われる可能性がありますので、覚えておくと役に立つと思います。
参考
AWS Key Management Service - AWS Key Management Service
暗号化されたEBSスナップショットを別リージョンへコピー - サーバーワークスエンジニアブログ
Amazon EBS スナップショットのコピー - Amazon Elastic Compute Cloud
AWS KMS では、カスタマーマスターキー (CMK) という用語が AWS KMS key および KMS キーに置き換えられています
emi kitani(執筆記事の一覧)
AS部LX課。2022/2入社、コーヒーとサウナが好きです。執筆活動に興味があります。AWS認定12冠。