目的
・EC2からKMSへのアクセスNAT gateway 経由でのアクセスからVPC エンドポイント経由でのアクセスへ変更する。
導入背景
EC2からKMSへアクセスする際に以下の懸念がありました。
・NAT gateway経由によってExternalなネットワークとなるためセキュリティへの懸念
・EC2からKMSへの通信コスト
これらの課題を解決するためにKMS用のInterfaceエンドポイントを実装しました。
VPC エンドポイントを介した AWS KMS への接続について
仮想プライベートクラウド (VPC) 内のプライベートインターフェイスエンドポイント経由で AWS KMS に直接接続することができます。インターフェイス VPC エンドポイントを使用する場合、VPC と AWS KMS 間の通信は完全に AWS ネットワーク内で行われます。
VPC エンドポイントを介した AWS KMS への接続
コスト
KMS のVPC エンドポイントと従来のNAT gateway を利用した際のコストを比較してみます。
VPC エンドポイント(KMS) | NAT gateway | |
---|---|---|
基本料金 | 10.22 USD/month・subnet | 45.26 USD/month |
通信コスト | 0.01 USD/GB | 0.062 USD/GB |
使用料金についてはNAT gatewayは他のサービスも使用するため比較しませんが、
通信コストはVPC エンドポイントの方が安いです。KMSへのアクセスはInterfaceタイプのVPC エンドポイントとなるため、指定したSubnetごとにENIが発行されるのでその分コストが増加します。HAとコストを考慮して設計すると良いです。
実装
VPC エンドポイントの作成
まずVPC エンドポイント用のSecurity group作成します。
ステートフルなのでInboundだけ作れば大丈夫です。
VPC エンドポイント用のSecurity group
Type | Procotol | Port | Source |
---|---|---|---|
Ingress/Inbound | TCP | 443 | 172.16.0.0/24 |
Sourceには今回アクセス元のEC2が設置されているVPCのCIDRで制限しています。
VPC エンドポイントの作成
サービスではcom.amazonaws.{region}.kms
を選択します。
VPCやSubnetを選択し、先ほど作成したSecurity groupをアタッチします。
VPC エンドポイントの作成前に注意すべきこと
適切なSubnetやSecurity groupを選択しているか確認してください。
KMSのキーポリシーは設定されていれば特に変更は必要ありません。
しかしVPC エンドポイントを介したKMSのアクセスはNAT gateway経由よりも優先 されます。
そのためSecurity group等が不適切に設定されていると、これまでのKMSへの通信がブロックされる可能性があります。
作成前にその設定が正しいものか今一度確認してみてください。
VPC エンドポイント経由でアクセスされているか確認
EC2からKMSへの経路がVPC エンドポイントを介しているか確認するためにはVPC Network Access Analyzerで経路を確認するのが一番簡単です。
[新機能] ネットワークがアクセス要件を満たしているか確認するのに便利な VPC Network Access Analyzer がリリースされました! #reinvent
まとめ
今回はEC2からKMSへのアクセスをNAT gateway 経由でのアクセスからVPC エンドポイント経由でのアクセスへ変更しました。これからもAWSクラウドに関する情報を発信していきます。