今回はKMS(Key Management Service)についてご紹介します。
みなさんは、KMS使っていらっしゃいますでしょうか?
昨今、セキュリティに対して注目が集まっていますのでKMSの導入も検討してみてくださいね。
Alibaba Cloud KMSとは
Alibaba Cloud KMS(Key Management Service)とは、暗号化されたKeyを作成・削除・管理するフルマネージドサービスです。
暗号鍵の機密性、整合性、可用性を保ちながら、コストも節約でき、他のAlibaba Cloudのサービスと連携出来ます。
サービス内容
他社クラウドとほぼ似た内容だと思いますが、特徴と利用上のメリットを簡易的にまとめました。
特徴
1.セキュアキーホスティング
KMSは暗号化キーホスティングをサポートしています。
KMSでホストされる暗号化キーは、カスタマーマスターキー(CMK)と言います。
CMKを有効または無効にすることで、CMKのライフサイクルを管理することができます。
2.BYOK
KMSは、Bring Your Own Keys(BYOK)をサポートしています。
サポートしている内容としては、
- オンプレミスのキー管理インフラストラクチャ(KMI)へキーを設定する
- データ暗号化サービスをプロビジョニングおよび管理するハードウェアセキュリティモジュール(HSM)のキー
が挙げられます。
ただし、 KMSの管理対象HSMにインポートされたキーは、セキュリティで保護されたキー交換アルゴリズムが使用されているためエクスポートできないので注意が必要です。
3.暗号化キーの自動ローテーション
KMSのCMKは、複数のキーバージョンをサポートしており、CMKの複数のキーバージョンは相互関係はありません。
KMSは暗号化キーを自動的にローテーションしています。
4.フルマネージドなHSM
KMSはフルマネージドなHSMを提供しています。
HSMにキーをホストできるため、暗号操作をHSM内に保持して暗号セキュリティを保護できます。
5.APIの提供
CMKの状態だけでなく、CMKに対する操作(作成や削除、スケジューリングなど)をAPIで行うことができます。
詳細はこちらを参考にしてください。
6.CMKエイリアス
CMKは複数のエイリアスを持つことができます。
エイリアス名は1アカウントと地域で一意である必要があります。
CMKとエイリアスのマッピングは、APIで更新(UpdateAlias)することが可能です。
エイリアスは各リージョンに最大300個まで作成することが出来ます。
7.リソースタグ
他のAlibaba Cloudのサービスと同様に、リソースタグが対応しているのでKMSでの暗号化リソースの管理ができます。
利用上のメリット
- KMSはECS、ApsaraDB(RDS)、OSSと統合されています。
- KMSはRAMと統合されているため、RAMを介してさまざまなカスタムポリシーを作成できます。
- KMSはActionTrailと統合されているので、KMSの使用状況やOSSなどの他のサービスでのKMSの使用状況を確認することができます。
SDK
2019年4月現在、提供されているSDKは以下の4つです。
- Java (JDK1.6以降)
- Python (Python2.x)
- PHP (バージョン: 5.3 / 5.4 / 5.5 / 5.6 / 7.0 / 7.1 )
- .NET (.NET Framework4.0以降)
まとめ
証明書やKeyなどの重要な情報の暗号化と管理が出来るサービスは便利だと感じます。(地味に面倒な部分だと思うので。)
また、APIやSDKが提供されており取り扱いやすい仕組みが作られています。
PHPのSDKが準備されているのは良いなと思いました。
(個人的には.NET Coreへの対応もお願いしたい)
参考資料
Alibaba Cloud Key Management Service(日本語)
Azure Key Vault
AWS Key Management Service
GCP CLOUD KEY MANAGEMENT SERVICE