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

Key Management Service:SDK の概要

最終更新日:Apr 21, 2026

Key Management Service (KMS) は、Alibaba Cloud SDK、Credentials SDK、KMS インスタンス SDK (非推奨) の 3 種類の SDK を提供しています。このトピックでは、それぞれの機能、認証方式、サポートされる API、ゲートウェイタイプを比較し、ユースケースに適した SDK を選択するのに役立つ情報を提供します。

SDK 統合フロー

Alibaba Cloud SDK

Alibaba Cloud SDK は、Alibaba Cloud OpenAPI を呼び出すための一連のライブラリを提供します。コントロールプレーン API (キー、認証情報、KMS インスタンスの管理) とデータプレーン API (暗号操作、認証情報の取得) の両方をサポートしています。利用可能な言語は、Java、Python、C++、PHP、.NET (C# のみ)、Go、TypeScript、Swift です。詳細については、「Alibaba Cloud SDK」をご参照ください。

サポートされる API

Alibaba Cloud SDK を使用して、コントロールプレーンとデータプレーンの両方の操作に対応する OpenAPI を呼び出します。API の完全なリストについては、「Alibaba Cloud SDK がサポートする OpenAPI」をご参照ください。

  • コントロールプレーン操作:キーや認証情報の作成、KMS インスタンスの作成、キータグの変更など、デフォルトキーと KMS インスタンスを管理します。

  • データプレーン操作

    • 暗号操作:対称および非対称の暗号化/復号、エンベロープ暗号化、データキーの生成、デジタル署名、署名検証。

    • 認証情報の取得:KMS インスタンスに保存されている認証情報の値を取得します。

重要

本番環境で Alibaba Cloud SDK を使用して認証情報を取得する場合は、ネットワークの変動に対応するために、エラーリトライロジックと認証情報キャッシングを実装してください。リトライ戦略については、「エクスポネンシャルバックオフによるリクエストのリトライ」をご参照ください。

サポートされるゲートウェイタイプ

Alibaba Cloud SDK は、共有ゲートウェイと専用ゲートウェイをサポートしています。コントロールプレーン操作には共有ゲートウェイが必要です。データプレーン操作は両方をサポートします。

ゲートウェイタイプ

推奨シナリオ

サポートされる API

共有ゲートウェイ

  • コントロールプレーン操作 (キー、認証情報、または KMS インスタンスの作成) が必要。

  • Alibaba Cloud VPC の外部にデプロイされている。

  • 内部テストなどの非本番環境。

すべての OpenAPI

専用ゲートウェイ

  • Alibaba Cloud VPC 内にデプロイされている。

  • 高いパフォーマンス要件を持つ頻繁なデータプレーン操作 (暗号化/復号、認証情報の取得)。

  • ビジネスデータに対する高いセキュリティ要件。

暗号操作と認証情報の取得 - OpenAPI

Credentials SDK

Credentials SDK は OpenAPI とインスタンス API をラップし、アプリケーション内での認証情報キャッシングと自動リフレッシュを提供します。認証情報の取得のみをサポートし、ビジネスの安定性を高め、開発者の統合を容易にします。Credential Client、Credential JDBC Client、RAM Credential Plugin の 3 つのバリアントがあります。Java (8 以降)、Python、Go で利用可能です。詳細については、「Credentials SDK」をご参照ください。

Credentials SDK のタイプ

SDK タイプ

説明

Credential Client

  • すべての認証情報タイプをサポートします。

  • 1 行のコードで認証情報を取得します。

  • 組み込みの認証情報キャッシングと自動リフレッシュ機能を備えています。

Credential JDBC Client

  • Java 8 以降が必要です。

  • RDS 認証情報と、フォーマットが {\"AccountName\":\"\",\"AccountPassword\":\"\"} の汎用認証情報のみをサポートします。

  • JDBC、接続プール (c3p0, DBCP)、またはデータベースフレームワークを介したデータベース認証に使用します。カスタムの更新間隔をサポートします。

RAM Credential Plugin

  • RAM 認証情報のみをサポートします。

  • サポートされている SDK バージョンが必要です。詳細については、「サポートされる Alibaba Cloud SDK」をご参照ください。

サポートされる API

Credentials SDK は、認証情報の取得操作のみをサポートします。認証情報の管理 (コントロールプレーン) には、Alibaba Cloud SDK を使用してください。

サポートされるゲートウェイタイプ

Credentials SDK は、共有または専用ゲートウェイを介して認証情報を取得します。

ゲートウェイタイプ

推奨シナリオ

共有ゲートウェイ

  • 認証情報の取得パフォーマンスが重要ではない。

  • Alibaba Cloud VPC の外部にデプロイされている。

  • 内部テストなどの非本番環境。

専用ゲートウェイ

  • Alibaba Cloud VPC 内にデプロイされている。

  • 頻繁な認証情報の取得操作。

  • ビジネスデータに対する高いセキュリティ要件。

KMS インスタンス SDK (非推奨)

KMS インスタンス SDK は、専用ゲートウェイエンドポイントにアクセスして、暗号操作と認証情報の取得を行います。Java (8 以降)、PHP、Go、Python、.NET (C# のみ) で利用可能です。詳細については、「KMS インスタンス SDK」をご参照ください。

ゲートウェイタイプごとのエンドポイント

KMS は 2 つのエンドポイントフォーマットを提供します:

  • 共有ゲートウェイエンドポイント (KMS サービスエンドポイント):KMS のグローバルネットワークアドレスで、パブリックインターネットまたは VPC ネットワーク経由でアクセスできます。

    • フォーマット: kms.<region-id>.cryptoservice.kms.aliyuncs.com。リージョン ID については、「リージョンとゾーン」をご参照ください。

    • 例:中国 (杭州) の場合、パブリックエンドポイントは kms.cn-hangzhou.aliyuncs.com で、VPC エンドポイントは kms-vpc.cn-hangzhou.aliyuncs.com です。

  • 専用ゲートウェイエンドポイント (KMS インスタンスエンドポイント):特定の KMS インスタンスのネットワークアドレスで、プライベートネットワーク経由でのみアクセスできます。

    • フォーマット: <kms-instance-id>.cryptoservice.kms.aliyuncs.com

    • 例: kst-hzz65f176a0ogplgq****.cryptoservice.kms.aliyuncs.com

認証と権限付与

KMS は、RAM 認証と AAP (アプリケーションアクセスポイント) 認証の 2 つの認証方式をサポートしています。共有ゲートウェイは両方の方式をサポートします。専用ゲートウェイは AAP 認証のみをサポートします。

  • RAM 認証:RAM ロール、STS トークン、ECS RAM ロール、AccessKey などを使用します。追加のメソッドについては、「アクセス認証情報の管理」をご参照ください。

    重要

    RAM 認証を使用して専用ゲートウェイ経由でインスタンス内のキーと認証情報にアクセスする場合、CA 証明書を構成する必要があります。

  • AAP 認証 (非推奨):アプリケーションアクセスポイントを作成し、Credential (ClientKeyContent) と認証情報パスワード (ClientKeyPassword) を含む ClientKey ファイルをダウンロードします。

RAM 認証

AccessKey

警告

デフォルトでは、Alibaba Cloud アカウントはすべてのリソースに対する管理者権限を持ち、変更することはできません。リソースのセキュリティを確保するため、RAM ユーザーを使用して AccessKey ペアを作成し、必要な権限のみを付与することを推奨します。

  1. RAM コンソールにログインします。ユーザー ページで、対象の RAM ユーザーの名前をクリックします。

  2. 認証管理タブの[AccessKey] セクションで、[AccessKey の作成]をクリックし、画面の指示に従います。

  3. RAM ユーザーに KMS へのアクセス権限を付与します。

    • 方法 1:ID ベースのポリシーを構成する

      RAM ユーザーの[操作]列で、権限の付与をクリックして、RAM ユーザーに KMS の組み込みシステム権限ポリシーをアタッチします。KMS のシステム権限ポリシーの詳細については、「KMS のシステムポリシー」をご参照ください。

      説明

      カスタム権限ポリシーを作成することもできます。詳細については、「カスタムポリシーの作成」をご参照ください。

    • 方法 2:リソースベースのポリシーを構成する

      KMS は、個々のキーとシークレットへのアクセス権限を付与するリソースベースのポリシーをサポートしています。これらのポリシーを使用して、どの Alibaba Cloud アカウント、RAM ユーザー、RAM ロールが KMS のキーとシークレットを管理または使用できるかを制御できます。詳細については、「キーポリシー」および「シークレットポリシー」をご参照ください。

ECS RAM ロール

ECS インスタンスの RAM ロールを使用すると、AccessKey ペアを構成することなく、ECS インスタンス内から一時的なアクセス認証情報 (STS トークン) を取得して KMS API オペレーションを呼び出すことができます。

詳細については、「インスタンス RAM ロール」をご参照ください。

  1. RAM コンソールにログインし、信頼できる Alibaba Cloud サービス用の RAM ロールを作成します。

    • 信頼できるエンティティタイプ: Elastic Compute Service を選択します。

    • 信頼できるエンティティ:[Elastic Compute Service (ECS)] を選択します。

  2. RAM ロールに KMS へのアクセス権限を付与します。

    • 方法 1:ID ベースのポリシーを構成する

      RAM ロールの [操作] 列で 権限の付与 をクリックして、KMS の組み込みシステム権限ポリシーを RAM ロールにアタッチします。詳細については、「KMS のシステムポリシー」をご参照ください。

      説明

      カスタム権限ポリシーを作成することもできます。詳細については、「カスタムポリシーの作成」をご参照ください。

    • 方法 2:リソースベースのポリシーを構成する

      KMS は、個々のキーとシークレットへのアクセス権限を付与するリソースベースのポリシーをサポートしています。これらのポリシーを使用して、どの Alibaba Cloud アカウント、RAM ユーザー、RAM ロールが KMS のキーとシークレットを管理または使用できるかを制御できます。詳細については、「キーポリシー」および「シークレットポリシー」をご参照ください。

  3. ECS コンソールにログインし、RAM ロールを ECS インスタンスにアタッチします。image

AccessKey + RamRoleArn

RAM ユーザーまたはクラウドサービスは、長期的なキーを使用する代わりにロールを偽装して一時的な権限 (STS トークン) を取得することで、キー漏洩のリスクを低減できます。たとえば、一時的なデータ処理タスクで、RAM ユーザーまたはクラウドサービスが特定の RamRoleArn を持つロールを一時的に偽装します。タスクが完了すると、ロールの権限は取り消され、漏洩のリスクが最小限に抑えられます。

  1. ユーザー AccessKey ペアの作成

    1. RAM コンソールにログインします。 左側のナビゲーションウィンドウで、アイデンティティ > ユーザーを選択します。 [ユーザー] ページで、対象の RAM ユーザーの名前をクリックします。

    2. AliyunSTSAssumeRoleAccess システムポリシーまたは sts:AssumeRole 操作を含むカスタムポリシーを RAM ユーザーにアタッチします。

    3. 認証管理 タブの [AccessKey] セクションで、[AccessKey の作成] をクリックし、画面の指示に従います。

  2. RAM ロールの作成と権限付与:

    1. 左側のナビゲーションウィンドウで、アイデンティティ > ロール を選択します。[ロール] ページで、ロールの作成 をクリックします。詳細については、「RAM ロールを作成する」をご参照ください。

    2. RAM ロールに KMS へのアクセス権限を付与します。

      • 方法 1:ID ベースのポリシーを構成する

        RAM ロールの[操作]列で、権限の付与 をクリックして、KMS の組み込みシステム権限ポリシーを RAM ロールにアタッチします。KMS のシステム権限ポリシーの詳細については、「KMS のシステムポリシー」をご参照ください。

        説明

        カスタム権限ポリシーを作成することもできます。詳細については、「カスタムポリシーの作成」をご参照ください。

      • 方法 2:リソースベースのポリシーを構成する

        KMS は、個々のキーとシークレットへのアクセス権限を付与するリソースベースのポリシーをサポートしています。これらのポリシーを使用して、どの Alibaba Cloud アカウント、RAM ユーザー、RAM ロールが KMS のキーとシークレットを管理または使用できるかを制御できます。詳細については、「キーポリシー」および「シークレットポリシー」をご参照ください。

  3. 対象の RAM ロールの RamRoleArn を取得します。詳細については、「RAM ロールに関する情報の表示」をご参照ください。

    1. 左側のナビゲーションウィンドウで、アイデンティティ > ロールを選択します。「ロール」ページで、対象のロールの名前をクリックします。

    2. ロールの詳細ページで、[ARN] セクションの RamRoleArn を見つけます。

      説明

      RamRoleArn は、偽装する RAM ロールの Alibaba Cloud リソースネーム (ARN) です。フォーマットは acs:ram::$accountID:role/$roleName で、$accountID は Alibaba Cloud アカウント ID、$roleName は RAM ロール名です。

STS トークン

Security Token Service (STS) は、RAM ユーザーまたは RAM ロールに一時的なアクセス認証情報である STS トークンを発行します。このトークンにより、限られた有効期間内で特定の権限を持って KMS にアクセスできます。トークンの有効期限が切れると、自動的に無効になります。

  1. RAM コンソールにログインして、RAM ユーザーまたは RAM ロールを作成します。詳細については、「RAM ユーザーの作成」および「RAM ロールの作成」をご参照ください。

  2. AliyunSTSAssumeRoleAccess 権限を RAM ユーザーまたは RAM ロールに付与します。詳細については、「RAM ユーザーへの権限付与」および「RAM ロールへの権限付与」をご参照ください。

  3. RAM ユーザーまたは RAM ロールに KMS へのアクセス権限を付与します。

    • 方法 1:ID ベースのポリシーを構成する

      RAM ロールまたはユーザーの[操作]列で、権限の付与 をクリックして KMS の組み込みシステム権限ポリシーをアタッチします。 KMS のシステム権限ポリシーの詳細については、「KMS のシステムポリシー」をご参照ください。

      説明

      カスタム権限ポリシーを作成することもできます。詳細については、「カスタムポリシーの作成」をご参照ください。

    • 方法 2:リソースベースのポリシーを構成する

      KMS は、個々のキーとシークレットへのアクセス権限を付与するリソースベースのポリシーをサポートしています。これらのポリシーを使用して、どの Alibaba Cloud アカウント、RAM ユーザー、RAM ロールが KMS のキーとシークレットを管理または使用できるかを制御できます。詳細については、「キーポリシー」および「シークレットポリシー」をご参照ください。

  4. RAM ユーザーまたは RAM ロールを使用して STS の AssumeRole 操作を呼び出し、一時的な STS アクセス認証情報を取得します。詳細については、「AssumeRole」をご参照ください。

OIDC Role ARN

  1. OIDC プロバイダーの作成

    1. RAM 管理者として RAM コンソールにログインします。[SSO] ページで、[ロールベースの SSO] タブをクリックします。

    2. [OIDC] タブで、IdP の作成をクリックします。

    3. IdP の作成 ページで、プロバイダー情報を設定します。詳細については、「OIDC プロバイダーの管理」をご参照ください。

  2. OIDC ID 情報 (ARN とクライアント ID) の取得と保存

    1. [SSO] ページに移動し、IdP タブで、対象の OIDC プロバイダーの名前をクリックします。

    2. IdP 詳細ページで、ARNClient ID を確認できます。

  3. OIDC プロバイダー用の RAM ロールの作成と権限付与

    1. RAM 管理者としてRAM コンソールにログオンし、アイデンティティ > ロール ページに移動します。

    2. ロールの作成 をクリックします。作成ページの右上隅で、[ポリシーエディターに切り替え] をクリックします。

    3. ポリシーエディターで、OIDC プロバイダーを指定します。ビジュアルエディタを選択し、以下のようにパラメーターを構成します。

      説明

      他のモードについては、「OIDC プロバイダー用の RAM ロールの作成」をご参照ください。

      1. [信頼できるエンティティの選択] セクションで、IdP を選択します。

      2. [信頼ポリシーの編集] セクションで、次のパラメーターを構成します。

        • IdP タイプ: OIDC を選択します。

        • IdP: 以前に作成した OIDC プロバイダーを選択します。

  4. OIDC RAM ロールに KMS へのアクセス権限を付与

    • 方法 1:ID ベースのポリシーを構成する

      アイデンティティ > ロール 一覧ページに戻り、対象の OIDC ロールの[操作]列にある権限の付与をクリックして、KMS 組み込みシステム権限ポリシーを RAM ロールに直接アタッチします。 KMS 組み込みシステム権限ポリシーの詳細については、「Key Management Service システム権限ポリシーリファレンス」をご参照ください。

      説明

      カスタム権限ポリシーもサポートされています。詳細については、「カスタムポリシーの作成」をご参照ください。

    • 方法 2:リソースベースのポリシーを構成する

      KMS は、個々のキーとシークレットへのアクセス権限を付与するリソースベースのポリシーをサポートしています。これらのポリシーを使用して、どの Alibaba Cloud アカウント、RAM ユーザー、RAM ロールが KMS のキーとシークレットを管理または使用できるかを制御できます。詳細については、「キーポリシー」および「シークレットポリシー」をご参照ください。

  5. 対象の OIDC Role ARN の取得

    1. アイデンティティ > ロール ページで、対象のロールの名前をクリックします。

    2. ロールの詳細ページで、[ARN] セクションの OIDC Role ARN を見つけます。

      説明

      Role ARN は、偽装される RAM ロールの ARN です。フォーマットは acs:ram::$accountID:role/$roleName で、$accountID は Alibaba Cloud アカウント ID、$roleName は RAM ロール名です。

  6. OIDC トークンファイルの発行と保存

    Alibaba Cloud はコンソールからの直接の OIDC ログインをサポートしていませんが、プログラムで OIDC SSO プロセスを完了することができます。OIDC トークンの取得には OAuth フローが含まれ、一般的には OIDC ID プロバイダー (IdP) からの標準的な OAuth 2.0 プロセスを介して行われます。

    例:RRSA が有効になっている ACK クラスターでアプリケーションが実行されると、クラスターはアプリケーションポッドに対応するサービスアカウントの OIDC トークンファイルを自動的に作成してマウントします。

AAP 認証 (非推奨)

共有ゲートウェイの構成

  1. [Key Management Service コンソール]にログオンします。トップナビゲーションバーで、リージョンを選択します。左側のナビゲーションウィンドウで、アプリケーションアクセス > マルチクラウドアクセス (元のアクセスポイント)を選択します。

  2. (オプション) ネットワークルールの作成

    説明

    ソース IP アドレスによるアクセスを制限するためのネットワークルールの構成はオプションです。ただし、セキュリティを向上させるために構成することを推奨します。

    1. Network Access Rules タブをクリックし、次に Create Network Access Rule をクリックします。

    2. Create Network Access Rule パネルで、Network TypePublic に設定し、Allowed Source IP Addresses を入力して、[OK] をクリックします。

  3. 権限ポリシーの作成

    1. 権限ポリシー タブをクリックし、次に 権限ポリシーの作成 をクリックします。

    2. 権限ポリシーの作成 パネルで、以下に従って共有ゲートウェイのパラメーターを設定し、[OK] をクリックします。

      1. スコープShared KMS Gateway

      2. アクセス可能のリソース: アクセスしたいシークレットを選択します。

      3. (任意) Network Access Rules: 前のステップで作成したネットワークルールを選択します。

  4. アプリケーションアクセスポイント (AAP) の作成

    1. アプリケーションアクセス タブをクリックし、次に Create AAP をクリックします。

    2. Create AAP パネルで、ModeStandard Creation に設定し、下記の説明に従ってパラメーターを設定します。

      パラメーター

      説明

      Authentication Method

      ClientKey を選択します。

      Encryption Password

      数字、文字、および特殊文字 ~!@#$%^&*?_- を含む 8〜64 文字の文字列を入力します。

      Validity Period

      重要

      ClientKey 漏洩のリスクを低減するため、有効期間を 1 年に設定することを推奨します。サービスの中断を避けるため、有効期限が切れる前に ClientKey をローテーションしてください。詳細については、「ClientKey のローテーション」をご参照ください。

      権限ポリシー

      前のステップで作成した権限ポリシーを選択します。

    3. OK をクリックします。ブラウザが自動的に ClientKey をダウンロードします。ClientKey には、以下のファイルが含まれています。

      • Credential (ClientKeyContent): デフォルトのファイル名は clientKey_****.json です。

      • 認証情報パスワード (ClientKeyPassword): デフォルトのファイル名は clientKey_****_Password.txt です。

専用ゲートウェイの構成

クイック作成または標準作成モードのいずれかを使用して ClientKey を作成できます。ClientKey の詳細については、「アプリケーションアクセスポイント」および「アプリケーションアクセスポイントの作成」をご参照ください。

  • 方法 1:クイック作成

    この方法は便利で効率的であり、迅速なテストや開発に適しています。この方法で作成されたアクセス認証情報は、KMS インスタンス内のすべてのリソースに完全にアクセスできます。

    1. Key Management Service コンソールにログオンします。上部のナビゲーションバーで、リージョンを選択します。左側のナビゲーションウィンドウで、アプリケーションアクセス > マルチクラウドアクセス (元のアクセスポイント)を選択します。

    2. アプリケーションアクセス タブで、Create AAP をクリックします。Create AAP パネルで、パラメーターを設定します。

      パラメーター

      説明

      Mode

      Quick Creation を選択します。

      Scope (KMS Instance)

      アプリケーションがアクセスする必要のある KMS インスタンスを選択します。

      Application Access Point Name

      アプリケーションアクセスポイントの名前を入力します。

      Authentication Method

      これは ClientKey に設定されており、変更できません。

      Default Permission Policy

      値は key/* secret/* であり、変更できません。これは、アプリケーションが指定された KMS インスタンス内のすべてのキーとシークレットにアクセスできることを意味します。

    3. OK をクリックします。ブラウザによって ClientKey が自動的にダウンロードされます。ClientKey には、次のファイルが含まれています。

      • Credential (ClientKeyContent):デフォルトのファイル名は clientKey_****.json です。

      • 認証情報パスワード (ClientKeyPassword): デフォルトのファイル名は clientKey_****_Password.txt です。

  • 方法 2:標準作成

    リソースに対してきめ細かなアクセス権限を構成する必要がある場合は、標準作成方法を使用することを推奨します。

    1. アプリケーションアクセスポイントの作成」の標準作成の手順に従って、専用ゲートウェイにアクセスするための ClientKey を作成します。主要なパラメーターは以下の通りです:

      1. ネットワークルールを構成する際、ネットワークタイプに [プライベート] を選択します。

      2. 権限ルールの範囲を構成する際、対応する KMS インスタンス ID を選択します。

    2. 作成後、ブラウザが自動的に ClientKey をダウンロードします。これには以下が含まれます:

      • Credential (ClientKeyContent): ファイル名はデフォルトで clientKey_****.json です。

      • 認証情報パスワード (ClientKeyPassword): ファイル名はデフォルトで clientKey_****_Password.txt です。