[KMS] EBS暗号化によるEC2操作への影響を調べてみた

2017.05.29

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、菊池です。

EC2のブロックストレージであるEBSはサーバーサイド暗号化(SSE)に対応しています。このEBS暗号化を実施することで、セキュリティレベルがどのように向上するのか、ご存知でしょうか?

EBS暗号化はサーバーサイドの暗号化なので、EC2上のOSからは特に意識することなく透過的に利用が可能です。一方で、暗号化されることで外部からのEC2の操作にも影響があります。暗号化に使用するKMS/CMKへのアクセス可否によるEC2操作への影響を調べてみました。

参考:

試してみる

以下のように、EBS暗号化にはKMSのカスタマーマスターキー(CMK)が使用されますので、暗号化/復号化にはCMKへのアクセス権が必要です。CMKへのアクセスが禁止されたIAMで、EC2へのアクセスがどのように変わるかを確認します。EC2へのアクセスはAmazonEC2FullAccessの権限を付与しています。

ebs-sse-001

なお、EBS暗号化したインスタンスは、AMIコピー時の暗号化にて作成しています。

検証結果

EBS暗号化を適用したEC2への操作の結果です。

操作 結果 備考
1 AMIからのインスタンス作成(Launch) 不可 Pendingの後、Terminate状態となる
2 インスタンスの開始(Start) 不可 Pendingの後、Stop状態となる
3 インスタンスの停止(Stop) -
4 インスタンスの再起動(Reboot) -
5 インスタンスの終了(Terminate) -
6 インスタンスからイメージ作成 -
7 AMIコピー 不可 Snapshot/AMI共にerrorとなる

1、2の通り、CMKにアクセスできないIAMユーザーでは、EC2の作成/起動はできませんでした。状態遷移の理由はどちらも[Client.InternalError: Client error on launch]となっていました。一方で、停止・再起動・終了には問題はありませんでした。7のAMIコピーでは、The specified keyId {CMKのARN} is not accessible となって結果がエラーとなりました。いずれもAPIの操作には成功しましたが、その後、エラーという結果になっています。

また、停止はできるが起動はできないという点には、運用上注意が必要かと思います。CMK利用の権限のないユーザーが停止してしまうと、そのユーザーでは起動できなくなりますので。

最後に

以上、小ネタですが調べてみました。

セキュリティの製品・ツールは、なんとなくで利用しがちですがその目的と効果をしっかりと理解して使っていきたいですね。