プログラミング初心者がアーキテクトっぽく語る

見苦しい記事も多数あるとは思いますが訂正しつつブログと共に成長していければと思います

APIキーを管理するCloudサービス

Web APIにおけるキーの管理について以下の記事で述べた。

architecting.hateblo.jp

この中でAPIキーを管理するCloudサービスについて名前だけ紹介したが中身までは触れなかった。

ここでは著名なサービスをいくつか取り上げて簡単に説明する。どんなサービスがあるのか理解する一助になれば幸いだ。


1. AWS Key Management Service(KMS)

AWS KMSは簡単に言うと暗号鍵の安全な暗号化・復号化を提供するサービスだ。方式2においてAPIキーの暗号化に使用した暗号鍵(データキー)をさらにクラウド上の暗号鍵(マスターキー)で暗号化することで安全に管理できる。

APIキーを復号化する際はまずAWSからマスターキーで復号化した平文データキーを取得し、平文データキーでAPIキーを復号化する。

マスターキーはAWS上で厳重に管理されており、盗まれる可能性が低いためハッカーが平文データキーを入手できる可能性は低い

AWSAPIキーを管理する必要は残る点に注意が必要だ。


2. AWS Secrets Manager

APIキー自体をAWS上で管理するサービスだ。

APIキーはAWS KMSを利用して暗号化される。


3. Google Cloud Key Management Service

暗号化の鍵をクラウドで管理できる仕組みだ。

方式2においてAPIキーの暗号化に使用した暗号鍵自体をクラウドで管理し、復号化するときにはkeyの名前を指定して鍵を取得する。


4. Azure Key Vault

Azure Key VaultはAPIキー自体をAzure上で管理するサービスだ。

keyに対応したvalueを返すサービスで、APIキー以外にシークレット、証明書の3種類を管理できる。

Identity Basedで特定のVMやアプリケーションからのアクセスを許容できるため、コードから完全にCredential情報を排除できる。一方、そのVMやアプリケーションが乗っ取られたらすべてを見放題になってしまう。