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

Key Management Service:シークレット SDK

最終更新日:Apr 04, 2025

シークレット SDK は、Key Management Service (KMS) API および KMS インスタンス API のカスタムカプセル化のためのツールであり、アプリケーションでシークレットをキャッシュおよびリフレッシュする機能をカプセル化します。 シークレット SDK は、開発者にとって高いサービス安定性とサービスアプリケーションとの容易な統合を特長としています。 このトピックでは、シークレット SDK を統合する方法について説明します。

統合の概要

シークレット SDK は、サービス関連の操作中にシークレットの取得のみをサポートします。 共有ゲートウェイと専用ゲートウェイの両方を使用してアクセスできます。

共有ゲートウェイと専用ゲートウェイの違い

シークレット SDK を使用すると、共有ゲートウェイと専用ゲートウェイを介して KMS API および KMS インスタンス API を呼び出して、シークレットを取得できます。 共有ゲートウェイは KMS ネットワーク全体を対象としており、インターネットおよび仮想プライベートクラウド(VPC)を介したアクセスをサポートしています。 専用ゲートウェイは特定の KMS インスタンスのネットワークを対象としており、プライベートネットワークを介したアクセスのみをサポートしています。

違い

共有ゲートウェイ

専用ゲートウェイ

推奨されるシナリオ

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

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

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

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

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

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

ネットワーク

インターネットまたは VPC

KMS プライベートネットワーク

パフォーマンス

データの暗号化および復号のパフォーマンスの場合、共有ゲートウェイを使用して KMS にアクセスするときのクエリ/秒(QPS)は 1,000 です。

データの暗号化と復号のパフォーマンスについては、共有ゲートウェイを使用して KMS にアクセスする場合、クエリ/秒(QPS)は 1,000 です。

パフォーマンスは、KMS インスタンスのコンピューティングパフォーマンスによって異なります。 たとえば、コンピューティングパフォーマンスは 1,000 または 2,000 QPS にすることができます。

クライアント初期化の構成

  • エンドポイント:専用ゲートウェイのエンドポイントは、<YOUR_KMS_INSTANCE_ID>.cryptoservice.kms.aliyuncs.com 形式です。 たとえば、kst-hzz65f176a0ogplgq****.cryptoservice.kms.aliyuncs.com です。

  • KMS インスタンスの CA 証明書が必要です。

API

KMS API の GetSecretValue

KMS インスタンス API の GetSecretValue

身元認証

  • Resource Access Management (RAM) 認証:RAM ロールの Amazon リソースネーム(ARN)、Elastic Compute Service (ECS) インスタンスの RAM ロール、Security Token Service (STS) トークン、および AccessKey ペア。

  • アプリケーションアクセスポイント(AAP)認証(非推奨):クライアントキー(共有ゲートウェイ構成)。

AAP 認証:クライアントキー(専用ゲートウェイ構成)。

シークレット SDK の種類

次の種類のシークレット SDK が利用可能です:Secret Client、Secret Java Database Connectivity (JDBC) Client、および RAM Secret Plug-in。 KMS API または KMS インスタンス API の GetSecretValue 操作を呼び出して、共有ゲートウェイまたは専用ゲートウェイを介して KMS シークレット値をクエリできます。 KMS インスタンス API の GetSecretValue 操作は推奨されません。 前述の種類のシークレット SDK は、異なる認証方式と API をサポートしています。 次の表に違いを示します。

SDK の種類

使用方法

ゲートウェイと認証方式

Secret Client

  • すべての種類のシークレットがサポートされています。

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

共有ゲートウェイ:

  • RAM 認証:RAM ロールの ARN、ECS インスタンスの RAM ロール、STS トークン、および AccessKey ペア。

  • AAP 認証(非推奨):クライアントキー(共有ゲートウェイ構成)。

専用ゲートウェイ(非推奨):

  • AAP 認証:クライアントキー(専用ゲートウェイ構成)。

Secret JDBC Client

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

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

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

共有ゲートウェイ:

  • RAM 認証:RAM ロールの ARN、ECS インスタンスの RAM ロール、STS トークン、および AccessKey ペア。

  • AAP 認証(非推奨):クライアントキー(共有ゲートウェイ構成)。

専用ゲートウェイ(非推奨):

AAP 認証:クライアントキー(専用ゲートウェイ構成)。

RAM Secret Plug-in

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

  • 使用する Alibaba Cloud SDK は、RAM Secret Plug-in でサポートされている必要があります。 詳細については、「サポートされている Alibaba Cloud SDK」をご参照ください。

共有ゲートウェイ:

  • RAM 認証:ECS インスタンスの RAM ロール。

  • AAP 認証(非推奨):クライアントキー(共有ゲートウェイ構成)。

専用ゲートウェイ(非推奨):

AAP 認証:クライアントキー(専用ゲートウェイ構成)。

サポートされている API

API

説明

共有ゲートウェイ

専用ゲートウェイ

GetSecretValue (KMS API)

シークレット値をクエリします。

对

错

GetSecretValue (KMS インスタンス API)

シークレット値をクエリします。

错

对

エンドポイント

共有ゲートウェイエンドポイント(KMS サービスエンドポイント)

  • 中国のリージョン

    リージョン名

    リージョン ID

    パブリックエンドポイント

    VPC アドレス

    中国(杭州)

    cn-hangzhou

    kms.cn-hangzhou.aliyuncs.com

    kms-vpc.cn-hangzhou.aliyuncs.com

    中国(上海)

    cn-shanghai

    kms.cn-shanghai.aliyuncs.com

    kms-vpc.cn-shanghai.aliyuncs.com

    中国(深圳)

    cn-shenzhen

    kms.cn-shenzhen.aliyuncs.com

    kms-vpc.cn-shenzhen.aliyuncs.com

    中国(河源)

    cn-heyuan

    kms.cn-heyuan.aliyuncs.com

    kms-vpc.cn-heyuan.aliyuncs.com

    中国(広州)

    cn-guangzhou

    kms.cn-guangzhou.aliyuncs.com

    kms-vpc.cn-guangzhou.aliyuncs.com

    中国(青島)

    cn-qingdao

    kms.cn-qingdao.aliyuncs.com

    kms-vpc.cn-qingdao.aliyuncs.com

    中国(北京)

    cn-beijing

    kms.cn-beijing.aliyuncs.com

    kms-vpc.cn-beijing.aliyuncs.com

    中国(張家口)

    cn-zhangjiakou

    kms.cn-zhangjiakou.aliyuncs.com

    kms-vpc.cn-zhangjiakou.aliyuncs.com

    中国(フフホト)

    cn-huhehaote

    kms.cn-huhehaote.aliyuncs.com

    kms-vpc.cn-huhehaote.aliyuncs.com

    中国(ウランチャブ)

    cn-wulanchabu

    kms.cn-wulanchabu.aliyuncs.com

    kms-vpc.cn-wulanchabu.aliyuncs.com

    中国(成都)

    cn-chengdu

    kms.cn-chengdu.aliyuncs.com

    kms-vpc.cn-chengdu.aliyuncs.com

    中国(香港)

    cn-hongkong

    kms.cn-hongkong.aliyuncs.com

    kms-vpc.cn-hongkong.aliyuncs.com

  • 中国以外のリージョン

    リージョン名

    リージョン ID

    パブリックエンドポイント

    VPC アドレス

    シンガポール

    ap-southeast-1

    kms.ap-southeast-1.aliyuncs.com

    kms-vpc.ap-southeast-1.aliyuncs.com

    マレーシア(クアラルンプール)

    ap-southeast-3

    kms.ap-southeast-3.aliyuncs.com

    kms-vpc.ap-southeast-3.aliyuncs.com

    インドネシア(ジャカルタ)

    ap-southeast-5

    kms.ap-southeast-5.aliyuncs.com

    kms-vpc.ap-southeast-5.aliyuncs.com

    フィリピン(マニラ)

    重要

    このリージョンにはゾーンが 1 つしか存在せず、サービスレベル契約(SLA)は保証されません。

    ap-southeast-6

    kms.ap-southeast-6.aliyuncs.com

    kms-vpc.ap-southeast-6.aliyuncs.com

    タイ(バンコク)

    重要

    このリージョンにはゾーンが 1 つしか存在せず、SLA は保証されません。

    ap-southeast-7

    kms.ap-southeast-7.aliyuncs.com

    kms-vpc.ap-southeast-7.aliyuncs.com

    日本(東京)

    ap-northeast-1

    kms.ap-northeast-1.aliyuncs.com

    kms-vpc.ap-northeast-1.aliyuncs.com

    ドイツ(フランクフルト)

    eu-central-1

    kms.eu-central-1.aliyuncs.com

    kms-vpc.eu-central-1.aliyuncs.com

    英国(ロンドン)

    eu-west-1

    kms.eu-west-1.aliyuncs.com

    kms-vpc.eu-west-1.aliyuncs.com

    米国(シリコンバレー)

    us-west-1

    kms.us-west-1.aliyuncs.com

    kms-vpc.us-west-1.aliyuncs.com

    米国(バージニア)

    us-east-1

    kms.us-east-1.aliyuncs.com

    kms-vpc.us-east-1.aliyuncs.com

    UAE(ドバイ)

    me-east-1

    kms.me-east-1.aliyuncs.com

    kms-vpc.me-east-1.aliyuncs.com

専用ゲートウェイエンドポイント(KMS インスタンスエンドポイント)

エンドポイントの形式は <YOUR_KMS_INSTANCE_ID>.cryptoservice.kms.aliyuncs.com です。 たとえば、kst-hzz65f176a0ogplgq****.cryptoservice.kms.aliyuncs.com です。

説明

<YOUR_KMS_INSTANCE_ID> を KMS インスタンスの ID に置き換えます。

身元認証と承認

シークレット SDK は、RAM 認証と AAP 認証をサポートしています。 AAP 認証は推奨されません。 RAM 認証方式には、RAM ロール、ECS インスタンスの RAM ロール、STS トークン、および AccessKey ペアが含まれます。 AAP 認証の場合、異なるゲートウェイに対して専用ゲートウェイ構成と共有ゲートウェイ構成の 2 つの認証モードが提供されます。

重要
  • RAM 認証は共有ゲートウェイのみをサポートします。

  • 専用ゲートウェイは、専用ゲートウェイ構成モードの AAP 認証のみをサポートします。

認証方式

アクセス認証情報の種類

ゲートウェイの種類

RAM 認証

RAM ロールの ARN、ECS インスタンスの RAM ロール、STS トークン、および AccessKey ペア

説明

RAM Secret Plug-in は、ECS インスタンスの RAM ロールのみをサポートします。

共有ゲートウェイ

AAP 認証(非推奨)

共有ゲートウェイ構成のクライアントキーと専用ゲートウェイ構成のクライアントキー

共有ゲートウェイと専用ゲートウェイ

RAM 認証

AccessKey

デフォルトでは、Alibaba Cloud アカウントは、関連付けられているすべての Alibaba Cloud リソースを管理する権限を持つ管理者として機能します。 Alibaba Cloud アカウントに関連付けられている権限は変更できません。 Alibaba Cloud アカウントに関連付けられている AccessKey ペアが侵害された場合、アカウントのリソースが危険にさらされます。 セキュリティを強化するために、Alibaba Cloud アカウントの AccessKey ペアを作成することはお勧めしません。 代わりに、API アクセスモードが有効になっている RAM ユーザーを作成し、このユーザーの AccessKey ペアを生成します。 最小権限の原則に従って RAM ユーザーに必要な権限のみを付与することにより、API 操作を実行して Alibaba Cloud リソースにアクセスできます。 詳細については、「AccessKey ペアを作成する」をご参照ください。

  1. Alibaba Cloud アカウント、AliyunRAMFullAccess ポリシーがアタッチされた RAM 管理者、または AccessKey ペアを管理する権限が付与された RAM ユーザーを使用して、RAM コンソール にログインします。

  2. 左側のナビゲーションウィンドウで、[ID] > [ユーザー] を選択し、目的の RAM ユーザーをクリックします。

  3. [認証] タブで、[accesskey の作成] をクリックし、指示に従って作成を完了します。

    image

  4. RAM ユーザーに KMS へのアクセス権を付与します。 付与を完了するには、2 つの方法があります。

    • 方法 1:ID ベースのポリシーによる

      KMS は、RAM ユーザーにアタッチできるシステム定義の権限ポリシーを提供します。 詳細については、「KMS のシステムポリシー」をご参照ください。 また、カスタムポリシーを作成することもできます。

    • 方法 2:リソースベースのポリシーによる

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

STS トークン

STS サービスを使用することにより、一時的なアクセス認証情報を RAM ユーザーまたは RAM ロールに発行して、限られた有効期間 ポリシーで指定された権限で KMS にアクセスできるようにすることができます。 有効期限が過ぎると、認証情報は自動的に無効になります。

  1. Alibaba Cloud アカウントまたは管理権限を持つ RAM ユーザーを使用して、RAM コンソール にログインします。

  2. RAM ユーザーを作成するか、RAM ロールを作成する

  3. RAM ユーザーに AliyunSTSAssumeRoleAccess 権限を付与するか、RAM ロールに AliyunSTSAssumeRoleAccess 権限を付与する

    image

  4. RAM ユーザーに KMS へのアクセス権を付与します。 付与を完了するには、2 つの方法があります。

    • 方法 1:ID ベースのポリシーによる

      KMS は、RAM ユーザーにアタッチできるシステム定義の権限ポリシーを提供します。 詳細については、「KMS のシステムポリシー」をご参照ください。 また、カスタムポリシーを作成することもできます。

    • 方法 2:リソースベースのポリシーによる

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

  1. RAM ユーザーまたは RAM ロールを使用して、STS サービスの AssumeRole インターフェースを呼び出して、一時的なアクセス認証情報を取得します。

RamRoleArn

RAM ユーザーまたはクラウドサービスは、長期アクセスキーを直接使用する代わりにロールをアタッチすることにより、一時的な権限を取得できるため、キー漏洩のリスクを軽減できます。 たとえば、一時的なデータ処理タスクでは、RAM ユーザーまたはクラウドサービスは、特定の RamRoleArn を持つロールを一時的にアタッチできます。 RamRoleArn は、RAM ロールの ARN 情報です。 タスクが完了すると、ロールの権限が取り消され、公開のリスクがさらに軽減されます。

  1. Alibaba Cloud アカウントまたは管理権限を持つ RAM ユーザーを使用して、RAM コンソール にログインします。

  2. RAM ロールを作成する

  3. RAM ユーザーに KMS へのアクセス権を付与します。 付与を完了するには、2 つの方法があります。

    • 方法 1:ID ベースのポリシーによる

      KMS は、RAM ユーザーにアタッチできるシステム定義の権限ポリシーを提供します。 詳細については、「KMS のシステムポリシー」をご参照ください。 また、カスタムポリシーを作成することもできます。

    • 方法 2:リソースベースのポリシーによる

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

  4. RAM ロールの RamRoleArn を表示する

    RamRoleArn は acs:ram::$accountID:role/$roleName の形式に従います。ここで、$accountID は Alibaba Cloud アカウント、$roleName は RAM ロールの名前です。

    image

ECS インスタンス RAM ロールRAM ロール

ECS インスタンス RAM ロールは、ECS インスタンスにアタッチされる通常のサービスロールであり、インスタンス RAM ロールの信頼できるエンティティは ECS です。 インスタンス RAM ロールを使用して、AccessKey ペアを提供することなく、ECS インスタンス内から Security Token Service (STS) トークンを一時的なアクセス認証情報として取得できます。 その後、一時的なアクセス認証情報を使用して、KMS の OpenAPI 操作を呼び出すことができます。

  1. RAM コンソール にログインし、プリンシパルタイプが Alibaba Cloud サービスであるインスタンス RAM ロールを作成します。

    • プリンシパルタイプ:[クラウドサービス] を選択します。

    • プリンシパル名:[elastic Compute Service / ECS] を選択します。

  2. RAM ユーザーに KMS へのアクセス権を付与します。 付与を完了するには、2 つの方法があります。

    • 方法 1:ID ベースのポリシーによる

      KMS は、RAM ユーザーにアタッチできるシステム定義の権限ポリシーを提供します。 詳細については、「KMS のシステムポリシー」をご参照ください。 また、カスタムポリシーを作成することもできます。

    • 方法 2:リソースベースのポリシーによる

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

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

AAP 認証(非推奨)

共有ゲートウェイ構成

  1. KMS コンソール にログインします。 上部のナビゲーションバーで、リージョンを選択します。 左側のナビゲーションウィンドウで、アプリケーションアクセス > AAPs を選択します。

  2. オプション。 ネットワークアクセスルールを作成します。

    説明

    送信元 IP アドレスに基づいてアクセスを制御する必要がない場合は、ネットワークアクセスルールを構成する必要はありません。 セキュリティのために、ネットワークアクセスルールを構成することをお勧めします。

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

    2. Create Network Access Rule パネルで、Network Type[パブリック] に設定し、Allowed Source IP Addresses パラメーターを構成して、[OK] をクリックします。

    image

  3. ポリシーを作成します。

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

    2. [権限ポリシーの作成] パネルで、パラメーターを構成し、[OK] をクリックします。 次のリストでパラメーターについて説明します。

      1. スコープShared KMS Gateway を選択します。

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

      3. Network Access Rules(オプション):手順 2 で作成したネットワークアクセスルールを選択します。

    image

  4. AAP を作成します。

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

    2. Create AAP パネルで、ModeStandard Creation に設定し、その他のパラメーターを構成します。次の表は、パラメーターについて説明しています。

      パラメータ

      説明

      Authentication Method

      クライアントキー を選択します。

      Encryption Password

      パスワードを設定します。パスワードは 8 ~ 64 文字で、大文字、小文字、数字、および次の特殊文字の少なくとも 1 つを含める必要があります: ~!@#$%^&*?_-.

      Validity Period

      重要

      クライアントキーの漏洩のリスクを軽減するために、1 年の有効期間を設定することをお勧めします。 KMS ログインの失敗を防ぐために、クライアントキーが有効期限切れになる前に置き換えていることを確認してください。詳細については、「クライアントキーを変更する」をご参照ください。

      権限ポリシー

      手順 3 で作成したポリシーを選択します。

    3. [OK] をクリックします。 ブラウザは、作成されたクライアントキーを自動的にダウンロードします。

      クライアントキーには、[アプリケーションアクセスシークレット(clientkeycontent)][パスワード] が含まれています。 デフォルトでは、[アプリケーションアクセスシークレット(clientkeycontent)] は、clientKey_****.json 形式の名前のファイルに保存されます。 デフォルトでは、[パスワード] は、clientKey_****_Password.txt 形式の名前のファイルに保存されます。

専用ゲートウェイ構成

  1. KMS コンソール にログインします。 上部のナビゲーションバーで、リージョンを選択します。 左側のナビゲーションウィンドウで、アプリケーションアクセス > AAPs を選択します。

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

  3. Create AAP パネルで、[モード]Quick Creation に設定し、Scope (KMS Instance) パラメーターでアプリケーションがアクセスする必要がある KMS インスタンスを選択します。

  4. [OK] をクリックします。 ブラウザは、作成されたクライアントキーを自動的にダウンロードします。

    クライアントキーには、[アプリケーションアクセスシークレット(clientkeycontent)][パスワード] が含まれています。 デフォルトでは、[アプリケーションアクセスシークレット(clientkeycontent)] は、clientKey_****.json 形式の名前のファイルに保存されます。 デフォルトでは、[パスワード] は、clientKey_****_Password.txt 形式の名前のファイルに保存されます。

AAP 認証の詳細については、「AAP を作成する」をご参照ください。

サポートされているプログラミング言語

次の表に、サポートされているプログラミング言語を示します。

シークレット SDK

サポートされているプログラミング言語

Secret Client

Java (Java 8 以降)、Python、および Go

Secret JDBC Client

Java (Java 8 以降)

RAM Secret Plug-in

Java (Java 8 以降)、Python、および Go