クライアントは REST API 経由で Cloud Key Management Service にアクセスできます。つまり、HTTP リクエストの送信をサポートするどの言語でも API にアクセスできます。ただし、多くのユーザーがより使い慣れたクライアント ライブラリを好むと考えられます。
長期的には、Google では、大幅なパフォーマンス向上のためにクライアントが gRPC を使用することを希望しています。ただし、デベロッパーによっては、既存の Google API クライアント ライブラリのほうが使い慣れていることもあります。このため、現状では REST API に基づいて構築されたライブラリを使用することをおすすめします。
また、Google Cloud Console の Cloud KMS 用のウェブベースのインターフェースを使用して、鍵管理オペレーションを行うこともできます。暗号化オペレーションと復号化オペレーションは、ウェブ インターフェースでは実行できません。
Google では、すべての言語とプラットフォームから Cloud KMS に快適にアクセスできるようにするための作業を進めています。ご不明な点がありましたら Google までお問い合わせください。
プラットフォーム
クライアントが API にアクセスする方法は、コードが実行されているプラットフォームによって若干異なり、特に認証において顕著です。Google アプリケーションのデフォルト認証情報において違いはほとんどありませんが、いくつかの留意点があります。
Compute Engine と Google Kubernetes Engine
Google Kubernetes Engine ノードなどの Compute Engine で実行されるソフトウェアは、一般的にデフォルトのサービス アカウントを使用して、環境に自動的にプロビジョニングされた認証情報を使用して認証します。Cloud KMS の場合も同様です。インスタンスを作成する際には、https://www.googleapis.com/auth/cloudkms
(最小権限の原則に従っているため望ましい)または https://www.googleapis.com/auth/cloud-platform
OAuth スコープへのアクセス権をインスタンスに必ず付与してください。
例:
gcloud compute instances create "instance-1" \ --zone "us-east1-b" \ --scopes "https://www.googleapis.com/auth/cloudkms"
詳細については、Compute Engine のドキュメントまたは GKE のドキュメントをご覧ください。
App Engine
App Engine で Cloud KMS を使用するには:
- App Engine サービス アカウント(
PROJECT_NAME@appspot.gserviceaccount.com
)に、鍵を管理または使用するための Identity and Access Management 権限を付与します。 - [アプリケーションのデフォルト認証情報] を使用して、スコープ
https://www.googleapis.com/auth/cloudkms
を指定します。また、範囲https://www.googleapis.com/auth/cloud-platform
を指定することもできますが、Cloud KMS だけでなく幅広いスコープも指定できます。
詳細については、App Engine ドキュメントの API へのアクセスとアクセスの制御をご覧ください。
オンプレミス本番環境
オンプレミスの本番環境では、Cloud KMS を含む Google Cloud API の認証にサービス アカウントを使用することをおすすめします。サービス アカウントの使用方法については、認証の開始をご覧ください。
クライアント認証
アプリケーションでユーザーを直接認証する必要がある場合は、ユーザーの代わりに認証情報を取得して使用できます。詳細については、エンドユーザーとしての認証をご覧ください。
デベロッパー ワークステーション
デベロッパー ワークステーションについても、サービス アカウントを使用して認証することをおすすめします。サービス アカウントの使用方法については、認証の開始をご覧ください。
Google によって管理されていない本番環境
Google によって管理されていない環境では、次のことを行う必要があります。
- サービス アカウントを作成する。
- 作成したサービス アカウントの JSON キーファイルをダウンロードします。
- ダウンロードしたキーファイルをなんらかの方法で本番環境にプロビジョニングします。
- キーファイルの認証情報をコードに読み込みます。
このプロセスの詳細については、Cloud Identity のドキュメントをご覧ください。