AWS KMS でキーを異なる AWS アカウントに共有したときに、共有先でどう見えるのか

# はじめに

AWS KMS で作成した CMK(Customer managed key) は、他の AWS アカウントに共有が出来ます。共有先の AWS アカウントでは、共有された CMK を使った EBS の暗号化などが可能です。また、Snapshot の共有など、CMK の共有が必要な状況もあります。

今回の記事では、CMK を共有した先で、どのように活用するのか不明だったので、簡単に検証してみました。



# 構成

ざっくりな構成図を載せます。以下の構成にしたときに、どんな操作で利用できるかを確かめていきます。

- 共有元 : KMS 上でキーを作成し、共有先へ共有する 
- 共有先 : 共有元からキーを共有され、実際にキーを利用する

![image-20221207000742666.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/6e20c502-11a3-5675-dd57-093868f97d40.png)



# 共有元

共有元の AWS アカウントでは、既に Customer managed keys を作成しています。

![image-20221206232736654.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/c0feff43-b6e6-27e7-39f9-30be97fa58e9.png)



共有している CMK の ARN がわかるので、メモをしておきましょう。共有先で使います。

- ARN : arn:aws:kms:ap-northeast-1:xxxxxxxxxxx:key/4c9a6278-3e8c-4bfb-bc58-b150b3e6fb4d

![image-20221206232914462.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/0175f6db-4d5e-c8ea-13ab-48c1fab4264f.png)



このキーは、共有先の AWS アカウントにすでに共有しています。(AWS アカウント ID は白で塗りつぶしています)

共有設定をしたい場合は、Add other AWS accounts を押して、共有できます。

![image-20221206232850502.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/a9ef0d40-61fc-5132-247c-639ba84f709a.png)



# 共有先

共有先の AWS アカウントで、KMS のマネージメントコンソールを見ても、共有されたキーが見えるわけではありません。

![image-20221206233040483.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/1b6aeaed-1bde-8586-0115-e7da8cab569c.png)



## EC2 の構成

実際に共有されたキーを利用してみるため、EC2 を構成してみます。

Launch Instance を選択します。

![image-20221206233339538.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/7b76c357-0b2f-ef6c-e55c-61d73d12d5de.png)



- Encrypted を選択
- KMS key を選択する欄で、`Specify a custom value` を選択

![image-20221206234659930.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/d6a00dd2-5b5e-c751-ca5d-47cf3e6e14e1.png)



ここが重要なポイントです。**共有元の KMS 上の Customer managed key の ARN を指定する** ことで、キーを利用できます。

![image-20221206234915778.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/4fac7aa8-1c8b-3a4f-1efd-ee94919c467b.png)



指定が出来ました

![image-20221206234940433.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/9df92373-13ad-74ae-0393-c9c9cff4c5bf.png)



Launch Instance を押して EC2 インスタンスを構成します

![image-20221206235000254.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/45ab28b8-7f19-dfa6-f82b-99b6afe84ee2.png)



作成処理が成功

![image-20221206235013643.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/b6a94771-af5d-a332-e047-9f240faf03a2.png)



普通に作成完了できました。SSH 接続も可能です。

![image-20221206235756982.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/1b4a4a3c-82a1-6560-8e78-5413fd73a8a0.png)



## RDS の構成

同様に RDS も観てみましょう。Create database を押します。

![image-20221206235111847.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/b3ded7dc-16db-81e3-a70a-1b3d04f531d1.png)



Encryption の欄で、Enter a key/ARN を押します。

![image-20221206235514118.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/d9174d8e-712b-eefe-6cbb-1c1b7918683d.png)



**共有元の Key の ARN を直接指定します。**

![image-20221206235558781.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/8efb42f6-e51a-9c09-a900-04608eb75b63.png)



Create database を押します。

![image-20221206235610511.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/9cbdbcc6-74ff-590d-1203-390163d5d0fd.png)



対象の RDS インスタンスが作成できました。

![image-20221207001234462.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/5056e642-c418-8728-2fb0-2cd1daeef487.png)



# 検証を通してわかったこと

- KMS の Customer managed key は、異なる AWS アカウントへ共有が可能
- 共有された key は、共有先の KMS の画面では見えない。key を利用するときに、直接 ARN を指定することで利用が可能