Key Management Service (KMS) は、Alibaba Cloud SDK、Secret SDK、および KMS インスタンス SDK を提供します。KMS インスタンス SDK は推奨されません。このトピックでは、SDK の統合プロセス、認証、サポートされている API 操作、およびサポートされているゲートウェイタイプについて説明します。ビジネス要件に基づいて SDK を選択できます。
SDK 統合フローチャート

Alibaba Cloud SDK
Alibaba Cloud SDK は、カプセル化されたプログラム依存関係パッケージであり、クラウドサービスの API 操作を呼び出すために使用されます。これにより、開発者は Alibaba Cloud 上にアプリケーションを迅速に構築できます。Alibaba Cloud SDK は、シークレットとキーを管理するための管理 API 操作とビジネス API 操作の両方をサポートしています。Alibaba Cloud SDK は、Java、Python、C++、PHP、.NET (C# のみ)、Go、TypeScript、および Swift をサポートしています。詳細については、「Alibaba Cloud SDK」をご参照ください。
サポートされている API 操作
Alibaba Cloud SDK を使用すると、KMS API の管理操作とビジネス操作を呼び出すことができます。詳細については、「サポートされている OpenAPI」をご参照ください。
管理操作: デフォルトキーと KMS インスタンスを管理するための操作 (キーの作成、シークレットの作成、KMS インスタンスの作成、キータグの変更など)。
ビジネス操作:
暗号操作: 対称暗号化と復号、非対称暗号化と復号、エンベロープ暗号化、およびデータキーの生成、デジタル署名の生成、デジタル署名の検証を行うための操作。
シークレット値の取得: KMS インスタンス内のシークレットのシークレット値を取得するための操作。
本番環境で Alibaba Cloud SDK を使用してシークレット値を取得する場合は、ネットワークジッターによるシークレット値の取得の失敗を防ぐために、再試行ポリシーやシークレットキャッシュなどのビジネスロジックを実装することをお勧めします。詳細については、「指数バックオフ方式を使用してリクエストを再試行する」をご参照ください。
サポートされているゲートウェイタイプ
Alibaba Cloud SDK を使用すると、共有ゲートウェイまたは専用ゲートウェイ経由で KMS API および KMS インスタンス API を呼び出すことができます。管理 API 操作は、共有ゲートウェイ経由でのみ呼び出すことができます。ビジネス API 操作は、共有ゲートウェイまたは専用ゲートウェイ経由で呼び出すことができます。
ゲートウェイタイプ | 推奨されるシナリオ | 認証 | サポートされている API 操作 |
共有ゲートウェイ |
| RAM 認証 | すべての KMS API 操作 |
専用ゲートウェイ |
| RAM 認証 | KMS API のシークレット値の取得操作と暗号操作 |
Secret SDK
Secret SDK は、KMS API および KMS インスタンス API のカスタムカプセル化のためのツールであり、アプリケーションでシークレットをキャッシュおよびリフレッシュする機能をカプセル化します。Secret SDK は、高いサービス安定性と、開発者向けのサービスアプリケーションとの容易な統合を特長としています。Secret SDK では、シークレットのみを取得できます。次のタイプの Secret SDK が利用可能です: Secret Client、Secret Java Database Connectivity (JDBC) Client、および Resource Access Management (RAM) Secret プラグイン。Secret SDK は、Java 8 以降、Python、および Go をサポートしています。詳細については、「Secret SDK」をご参照ください。
Secret SDK のタイプ
SDK タイプ | 説明 |
| |
| |
|
サポートされている API
Secret SDK では、KMS API または KMS インスタンス API を呼び出すことによってシークレット値を取得することのみが可能です。KMS インスタンス API は推奨されません。シークレットを管理するための API 操作を呼び出す場合は、Alibaba Cloud SDK を使用することをお勧めします。
本番環境で Secret SDK を使用してシークレット値を取得する場合は、ネットワークジッターによるシークレット値の取得の失敗を防ぐために、再試行ポリシーやシークレットキャッシュなどのビジネスロジックを実装することをお勧めします。詳細については、「指数バックオフ方式を使用してリクエストを再試行する」をご参照ください。
サポートされているゲートウェイタイプ
Secret SDK は、共有ゲートウェイまたは専用ゲートウェイ経由でシークレット値を取得します。共有ゲートウェイは、KMS API 呼び出しの RAM 認証またはアプリケーションアクセスポイント (AAP) 認証をサポートしています。専用ゲートウェイは、KMS インスタンス API 呼び出しの AAP 認証のみをサポートしています。
ゲートウェイタイプ | 推奨されるシナリオ | 認証 | サポートされている API 操作 |
共有ゲートウェイ |
| RAM 認証 | KMS API のシークレット値の取得 |
AAP 認証 (非推奨) | KMS インスタンス API のシークレット値の取得 | ||
専用ゲートウェイ |
| AAP 認証 (非推奨) | KMS インスタンス API のシークレット値の取得 |
KMS インスタンス SDK (非推奨)
アプリケーションは KMS インスタンス SDK を使用して専用ゲートウェイエンドポイントにアクセスし、暗号操作を呼び出してシークレット値を取得します。KMS インスタンス SDK は、Java 8 以降、PHP、Go、Python、および .NET (C# のみ) をサポートしています。詳細については、「KMS インスタンス SDK」をご参照ください。
ゲートウェイエンドポイントと認証
ゲートウェイエンドポイント
KMS は、次の 2 つのタイプのエンドポイントを提供します。
共有ゲートウェイエンドポイント (KMS サービスエンドポイントとも呼ばれます): KMS のグローバルネットワークアドレス。共有ゲートウェイエンドポイントには、インターネットまたは VPC 経由でアクセスできます。共有ゲートウェイエンドポイントは、リージョンによって異なります。たとえば、中国 (杭州) リージョンの共有ゲートウェイエンドポイントは kms.cn-hangzhou.aliyuncs.com と kms-vpc.cn-hangzhou.aliyuncs.com です。詳細については、「操作」をご参照ください。
専用ゲートウェイエンドポイント (KMS インスタンスエンドポイントとも呼ばれます): 特定の KMS インスタンスのネットワークアドレス。専用ゲートウェイエンドポイントには、プライベートネットワーク経由でのみアクセスできます。専用ゲートウェイエンドポイントは、
{KMS インスタンスの ID}.cryptoservice.kms.aliyuncs.com形式です。
認証
KMS は、RAM 認証と AAP 認証を提供します。共有ゲートウェイは、RAM 認証と AAP 認証の両方をサポートしています。専用ゲートウェイは、AAP 認証のみをサポートしています。
RAM 認証: RAM ロール、Security Token Service (STS) トークン、Elastic Compute Service (ECS) インスタンスの RAM ロール、および AccessKey ペア。
AAP 認証 (非推奨): この認証方式を使用する場合は、AAP を作成し、[clientkeycontent] と [clientkeypassword] を含むクライアントキーをダウンロードして保存する必要があります。AAP 認証の場合、異なるゲートウェイに対して専用ゲートウェイ構成と共有ゲートウェイ構成の 2 つの認証モードが提供されます。詳細については、「AAP 認証」をご参照ください。