すべてのプロダクト
Search
ドキュメントセンター

Key Management Service:SDK リファレンス

最終更新日:Apr 04, 2025

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

SDK 統合フローチャート

Integration of self-managed applications with KMS-流程图

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 操作

共有ゲートウェイ

  • KMS インスタンス、キー、およびシークレットを管理するために API 操作を呼び出す必要があります (キーの作成、シークレットの作成、KMS インスタンスの作成など)。

  • ワークロードは、Alibaba Cloud 仮想プライベートクラウド (VPC) の外部にデプロイされます。

  • 内部テスト環境などの非本番環境から KMS へのアクセスが開始されます。

RAM 認証

すべての KMS API 操作

専用ゲートウェイ

  • ワークロードは Alibaba Cloud VPC にデプロイされます。

  • 暗号化と復号、シークレットの取得などのビジネス 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 タイプ

説明

Secret Client

  • すべてのタイプのシークレットがサポートされています。

  • 1 行のコードを使用して、アプリケーションでシークレットをすばやく取得できます。

  • Secret Client は、アプリケーションでシークレットをキャッシュおよびリフレッシュする機能をカプセル化し、より高いサービス安定性を提供します。

Secret JDBC Client

  • Java のみがサポートされています。Java 8 以降を使用する必要があります。

  • ApsaraDB RDS シークレットと、シークレット値が {"AccountName":"<データベースアカウントのユーザー名>","AccountPassword":"<データベースアカウントのパスワード>"} 形式の汎用シークレットのみがサポートされています。

  • JDBC 接続、接続プール、またはオープンソースデータベースフレームワークを使用してデータベースに接続する場合、Secret JDBC Client を使用して身元認証を完了し、カスタムシークレットのリフレッシュ頻度を構成できます。接続プールには、c3p0 と Database Connection Pools (DBCP) が含まれます。

RAM Secret プラグイン

  • RAM シークレットのみがサポートされています。

  • 使用する Alibaba Cloud SDK は、RAM Secret プラグインでサポートされている必要があります。詳細については、「サポートされている Alibaba Cloud 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 操作

共有ゲートウェイ

  • シークレット取得操作のパフォーマンス要件は高くありません。

  • ワークロードは、Alibaba Cloud VPC の外部にデプロイされます。

  • 内部テスト環境などの非本番環境から KMS へのアクセスが開始されます。

RAM 認証

KMS API のシークレット値の取得

AAP 認証 (非推奨)

KMS インスタンス API のシークレット値の取得

専用ゲートウェイ

  • ワークロードは Alibaba Cloud VPC にデプロイされます。

  • シークレット取得操作が頻繁に呼び出されます。

  • サービスデータセキュリティの要件が高い。

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 認証」をご参照ください。