Secrets Manager Client は、KMS OpenAPI および KMS インスタンス API をベースに構築されたカスタムラッパーです。アプリケーション統合向けに組み込みのシークレットキャッシュおよびリフレッシュ機能を提供し、ビジネスの安定性を向上させるとともに、開発者のワークフローを簡素化します。このクライアントは、すべてのシークレットタイプのシークレット値取得をサポートしています。
Secrets Manager Client SDK
Secrets Manager Client SDK は、KMS API をラップし、シークレットキャッシュに関するベストプラクティスおよび設計パターンを取り入れることで、シークレット管理をアプリケーションシステムに簡単に統合できるようにします。この SDK には以下の利点があります。
1 行のコードでシークレット値を読み取ることにより、アプリケーションにシークレット管理を統合できます。
アプリケーション内に組み込まれたシークレットキャッシュおよびリフレッシュ機能を提供します。
API エラーに対する自動リトライロジックと、サーバー側エラーのインテリジェントな処理を実現します。
プラグインベースのアーキテクチャにより、キャッシュ、リトライロジック、その他のモジュールをカスタマイズできます。
Alibaba Cloud では、シークレット値の取得に使用可能な KMS Instance SDK および Alibaba Cloud SDK も提供しています。詳細については、「SDK リファレンス」をご参照ください。
シークレットに対して管理操作を実行する場合は、Alibaba Cloud SDK を使用する必要があります。
SDK のバージョン
SDK 2.0 がご利用いただけます。SDK 2.0 の使用を推奨します。以下の表は、SDK 1.0 と SDK 2.0 を比較したものです。
認証情報のサポート
認証情報タイプ
SDK 1.0
SDK 2.0
AccessKey
OIDC Role Arn
ECS RAM Role
RAM Role Arn
説明SDK 2.0 は、デフォルトの環境変数および設定ファイルから RAM ロールの ARN 情報を読み取ることをサポートしていません。ハードコーディングされたアプローチを使用する必要があります。この機能が必要な場合は、テクニカルサポートまでご連絡ください。
ClientKey
セキュリティ機能
機能
SDK 1.0
SDK 2.0
組み込み CA 証明書
SDK 認証フロー
Secrets Manager Client は、アクセス認証情報を使用して認証を行います。認証プロセスは、接続先のゲートウェイタイプによって若干異なります。SDK は構成されたパラメーターを自動的に検出し、適切なゲートウェイを選択します。この柔軟な認証メカニズムにより、ゲートウェイタイプを手動で構成する必要はありません。認証手順は以下のとおりです。
環境変数を設定するか、設定ファイルを準備し、必要な認証情報がすべて含まれていることを確認します。専用ゲートウェイと共有ゲートウェイではパラメーターが異なります。
クライアントを初期化します。SDK は自動的に設定を読み取り、ゲートウェイタイプを識別します。
認証が完了したら、ゲートウェイ操作を実行できます。
対応範囲
サポートされるシークレットタイプ:汎用シークレット、RAM シークレット、ECS シークレット、データベースシークレット。
サポートされるプログラミング言語:Java (Java 8 以降)、Python、Go、Node.js。
Secrets Manager Client のインストール
以下は、SDK 2.0 のインストール手順です。SDK 1.0 のインストール方法については、各 SDK のソースコードリポジトリをご参照ください。
Java
Maven を使用してプロジェクトに Secrets Manager Client をインストールします。
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>alibabacloud-secretsmanager-client-v2</artifactId>
<version>x.x.x</version>
</dependency>
最新の機能および最適化を利用するには、最新バージョンの SDK 2.0 を使用してください。SDK 2.0 のサンプルコードおよびソースコードについては、alibabacloud-secretsmanager-client-java-v2 をご参照ください。SDK 1.0 については、alibabacloud-secretsmanager-client-java をご参照ください。
Python
pip を使用して Secrets Manager Client をインストールします。
# 以下のコマンドが失敗する場合は、pip を pip3 に置き換えてください
pip install alibabacloud_secretsmanager_client_v2
Secrets Manager Client Python SDK V2 のインストールには、Python 3.7 以降が必要です。
python3 --versionコマンドを実行して現在のバージョンを確認し、バージョンが 3.7 未満の場合は、インストールコマンドを実行する前に Python をアップグレードしてください。最新の機能および最適化を利用するには、SDK 2.0 を使用してください。SDK 2.0 のサンプルコードおよびソースコードについては、aliyun-secretsmanager-client-python-v2 をご参照ください。SDK 1.0 については、aliyun-secretsmanager-client-python をご参照ください。
Go
go get コマンドを使用して Secrets Manager Client をインストールします。
go get -u github.com/aliyun/alibabacloud-secretsmanager-client-go-v2 Go の場合、
alibaba-cloud-sdk-go依存関係は V1.63.0 より前のバージョンである必要があります。go.modファイルを確認してバージョンを確認し、互換性の問題を回避してください。最新の機能および最適化を利用するには、SDK 2.0 を使用してください。SDK 2.0 のサンプルコードおよびソースコードについては、alibabacloud-secretsmanager-client-go-v2 をご参照ください。SDK 1.0 については、aliyun-secretsmanager-client-go をご参照ください。
Node.js
npm または yarn を使用して Secrets Manager Client をインストールします。
npm
npm install alibabacloud-secretsmanager-client-v2yarn
yarn add alibabacloud-secretsmanager-client-v2
Secrets Manager Client SDK V2 のインストールには、Node.js 16.0.0 以降が必要です。
最新の機能および最適化を利用するには、SDK 2.0 を使用してください。SDK 2.0 のサンプルコードおよびソースコードについては、alibabacloud-secretsmanager-client-nodejs-v2 をご参照ください。
アクセス認証情報の構成
ECS RAM Role
ステップ 1:RAM ロールの作成と権限の構成
ECS インスタンス RAM ロールを使用すると、AccessKey ペアを構成せずに、ECS インスタンス内から一時的なアクセス認証情報 (STS トークン) を取得して KMS API オペレーションを呼び出すことができます。
詳細については、「インスタンス RAM ロール」をご参照ください。
RAM コンソール にログインし、信頼された Alibaba Cloud サービス向けの RAM ロールを作成します。
信頼エンティティタイプ:Elastic Compute Service を選択します。
信頼エンティティ:Elastic Compute Service (ECS) を選択します。
KMS へのアクセス権限を RAM ロールに付与します。
方法 1:ID ベースのポリシーの構成
RAM ロールの 操作 列で、権限の付与 をクリックして、RAM ロールに KMS の組み込みシステム権限ポリシーをアタッチします。KMS のシステム権限ポリシーの詳細については、「KMS のシステムポリシー」をご参照ください。
説明カスタム権限ポリシーを作成することもできます。詳細については、「カスタムポリシーの作成」をご参照ください。
方法 2:リソースベースのポリシーの構成
KMS は、個々のキーおよびシークレットに対するアクセス権限を付与するリソースベースのポリシーをサポートしています。これらのポリシーを使用して、どの Alibaba Cloud アカウント、RAM ユーザー、および RAM ロールが KMS キーおよびシークレットを管理または使用できるかを制御できます。詳細については、「キーポリシー」および「シークレットポリシー」をご参照ください。
ECS コンソール にログインし、RAM ロールを ECS インスタンスにアタッチします。

ステップ 2:環境変数または設定ファイルの設定
SDK は、アクセス認証情報を取得するための以下の 2 つの方法をサポートしています。
環境変数:オペレーティングシステムごとに設定方法が異なります。詳細については、をご参照ください。
警告パラメーター名を変更しないでください。変更すると、SDK が認識できなくなります。
設定ファイル:デフォルトの設定ファイルは
secretsmanager.propertiesです (ファイル名は変更できません)。アプリケーションが設定ファイルを正しくロードできるように、適切な設定ディレクトリに配置してください。言語別の一般的な設定ディレクトリは以下のとおりです。Java:
src/main/resourcesディレクトリに設定ファイルを配置すると、コンパイル時にクラスパスに自動的に含まれます。Go:プロジェクトルートディレクトリまたは専用の
configディレクトリに設定ファイルを配置し、コードを通じてロードします。Python:プロジェクトディレクトリまたは特定の
configディレクトリに設定ファイルを配置し、適切な方法 (os.pathやpkg_resourcesなど) を使用してロードします。
カスタム設定ファイルを使用する場合は、クライアント初期化時にファイルパス (
#customConfigFileName#) を指定する必要があります。
設定ファイル
専用ゲートウェイ
# 認証情報タイプ credentials_type=ecs_ram_role # ECS RAM ロール名 credentials_role_name=#credentials_role_name# # 関連付けられた KMS リージョンおよびインスタンスエンドポイント cache_client_region_id=[{"regionId":"<regionId>","endpoint":"<your_kms_instance_id>.cryptoservice.kms.aliyuncs.com"}]共有ゲートウェイ
# 認証情報タイプ credentials_type=ecs_ram_role # ECS RAM ロール名 credentials_role_name=#credentials_role_name# # 関連付けられた KMS リージョン cache_client_region_id=[{"regionId":"#regionId#"}]共有ゲートウェイ (VPC)
# 認証情報タイプ credentials_type=ecs_ram_role # ECS RAM ロール名 credentials_role_name=#credentials_role_name# # 関連付けられた KMS リージョンおよび VPC エンドポイント cache_client_region_id=[{"regionId":"#regionId#","endpoint":"kms-vpc.#regionId#.aliyuncs.com","vpc":"true"}]
環境変数
パラメーター | 値 |
| 固定値: |
| RAM ロールの名前。 |
|
|
AccessKey
ステップ 1:AccessKey の作成と権限の構成
Alibaba Cloud アカウントはデフォルトで、すべてのリソースに対する管理者権限を持ち、これを変更することはできません。リソースのセキュリティを確保するために、RAM ユーザーを使用して AccessKey ペアを作成し、必要な最小限の権限のみを付与することを推奨します。
RAM コンソール にログインします。ユーザー ページで、対象の RAM ユーザーの名前をクリックします。
認証管理 タブの AccessKey セクションで、Create AccessKey をクリックし、画面の指示に従います。
KMS へのアクセス権限を RAM ユーザーに付与します。
方法 1:ID ベースのポリシーの構成
RAM ユーザーの 操作 列で、権限の付与 をクリックして、RAM ユーザーに KMS の組み込みシステム権限ポリシーをアタッチします。KMS のシステム権限ポリシーの詳細については、「KMS のシステムポリシー」をご参照ください。
説明カスタム権限ポリシーを作成することもできます。詳細については、「カスタムポリシーの作成」をご参照ください。
方法 2:リソースベースのポリシーの構成
KMS は、個々のキーおよびシークレットに対するアクセス権限を付与するリソースベースのポリシーをサポートしています。これらのポリシーを使用して、どの Alibaba Cloud アカウント、RAM ユーザー、および RAM ロールが KMS キーおよびシークレットを管理または使用できるかを制御できます。詳細については、「キーポリシー」および「シークレットポリシー」をご参照ください。
ステップ 2:環境変数または設定ファイルの設定
SDK は、アクセス認証情報を取得するための以下の 2 つの方法をサポートしています。
環境変数:オペレーティングシステムごとに設定方法が異なります。詳細については、をご参照ください。
警告パラメーター名を変更しないでください。変更すると、SDK が認識できなくなります。
設定ファイル:デフォルトの設定ファイルは
secretsmanager.propertiesです (ファイル名は変更できません)。アプリケーションが設定ファイルを正しくロードできるように、適切な設定ディレクトリに配置してください。言語別の一般的な設定ディレクトリは以下のとおりです。Java:
src/main/resourcesディレクトリに設定ファイルを配置すると、コンパイル時にクラスパスに自動的に含まれます。Go:プロジェクトルートディレクトリまたは専用の
configディレクトリに設定ファイルを配置し、コードを通じてロードします。Python:プロジェクトディレクトリまたは特定の
configディレクトリに設定ファイルを配置し、適切な方法 (os.pathやpkg_resourcesなど) を使用してロードします。
カスタム設定ファイルを使用する場合は、クライアント初期化時にファイルパス (
#customConfigFileName#) を指定する必要があります。
設定ファイル
専用ゲートウェイ
# 認証情報タイプ credentials_type=ak # AccessKey ID credentials_access_key_id=#access_key_id# # AccessKey Secret credentials_access_secret=#access_key_secret# # 専用 KMS インスタンスゲートウェイ用の以下の構成を使用 cache_client_region_id=[{"regionId":"<regionId>","endpoint":"<your_kms_instance_id>.cryptoservice.kms.aliyuncs.com"}]# 認証情報タイプ credentials_type=ak # AccessKey ID credentials_access_key_id=#access_key_id# # AccessKey Secret credentials_access_secret=#access_key_secret# # 関連付けられた KMS リージョン cache_client_region_id=[{"regionId":"#regionId#"}]共有ゲートウェイ (VPC)
# 認証情報タイプ credentials_type=ak # AccessKey ID credentials_access_key_id=#access_key_id# # AccessKey Secret credentials_access_secret=#access_key_secret# # 関連付けられた KMS リージョンおよび VPC エンドポイント cache_client_region_id=[{"regionId":"#regionId#","endpoint":"kms-vpc.#regionId#.aliyuncs.com","vpc":"true"}]
環境変数
パラメーター | 値 |
| 固定値: |
| AccessKey ID。 |
| AccessKey Secret。 |
|
|
OIDC Role ARN
OIDC Role ARN 認証情報は、SDK 2.0 のみがサポートしています。SDK 1.0 はサポートしていません。
ステップ 1:OIDC ロール ARN の作成と権限の構成
OIDC プロバイダーの作成
RAM 管理者として RAM コンソール にログインします。SSO ページで、ロールベース SSO タブをクリックします。
OIDC タブで、IdP の作成 をクリックします。
IdP の作成 ページで、プロバイダー情報を構成します。詳細については、「OIDC プロバイダーの管理」をご参照ください。
OIDC ID 情報 (ARN およびクライアント ID) の取得と保存
SSO ページの IdP タブで、対象の OIDC プロバイダーの名前をクリックします。
IdP 詳細ページで、ARN および クライアント ID を確認できます。
OIDC プロバイダー向けの RAM ロールの作成と権限付与
RAM 管理者として RAM コンソール にログインし、 ページに移動します。
ロールの作成 をクリックします。作成ページの右上隅で、ポリシーエディターに切り替え をクリックします。
ポリシーエディターで、OIDC プロバイダーを指定します。ビジュアルエディターを選択し、以下のようにパラメーターを構成します。
説明他のモードについては、「OIDC プロバイダー向け RAM ロールの作成」をご参照ください。
信頼エンティティの選択 セクションで、IdP を選択します。
信頼ポリシーの編集 セクションで、以下のパラメーターを構成します。
IdP タイプ:OIDC を選択します。
IdP:事前に作成した OIDC プロバイダーを選択します。
KMS へのアクセス権限を OIDC RAM ロールに付与
方法 1:ID ベースのポリシーの構成
アイデンティティ > ロール リストページに戻り、対象の OIDC ロールの 操作 列で 権限の付与 をクリックして、RAM ロールに KMS の組み込みシステム権限ポリシーを直接アタッチします。KMS の組み込みシステム権限ポリシーの詳細については、「Key Management Service システム権限ポリシーリファレンス」をご参照ください。
説明カスタム権限ポリシーもサポートされています。詳細については、「カスタム権限ポリシーの作成」をご参照ください。
方法 2:リソースベースのポリシーの構成
KMS は、個々のキーおよびシークレットに対するアクセス権限を付与するリソースベースのポリシーをサポートしています。これらのポリシーを使用して、どの Alibaba Cloud アカウント、RAM ユーザー、および RAM ロールが KMS キーおよびシークレットを管理または使用できるかを制御できます。詳細については、「キーポリシー」および「シークレットポリシー」をご参照ください。
対象の OIDC ロール ARN の取得
[] ページで、対象のロール名をクリックします。
ロール詳細ページの ARN セクションで、OIDC ロール ARN を確認します。
説明ロール ARN は、偽装する RAM ロールの Alibaba Cloud リソースネーム (ARN) です。形式は
acs:ram::$accountID:role/$roleNameで、$accountIDは Alibaba Cloud アカウント ID、$roleNameは RAM ロール名です。
OIDC トークンファイルの発行と保存
Alibaba Cloud はコンソールからの直接的な OIDC ログインをサポートしていませんが、OIDC SSO プロセスをプログラムで完了できます。OIDC トークンの取得には OAuth フローが関与し、通常は OIDC ID プロバイダー (IdP) からの標準的な OAuth 2.0 プロセスを通じて行われます。
例: アプリケーションが RRSA が有効化された ACK クラスターで実行される場合、クラスターはアプリケーションポッド用の対応するサービスアカウントの OIDC トークンファイルを自動的に作成およびマウントします。
ステップ 2:環境変数または設定ファイルの設定
SDK は、アクセス認証情報を取得するための以下の 2 つの方法をサポートしています。
環境変数:オペレーティングシステムごとに設定方法が異なります。詳細については、をご参照ください。
警告パラメーター名を変更しないでください。変更すると、SDK が認識できなくなります。
設定ファイル:デフォルトの設定ファイルは
secretsmanager.propertiesです (ファイル名は変更できません)。アプリケーションが設定ファイルを正しくロードできるように、適切な設定ディレクトリに配置してください。言語別の一般的な設定ディレクトリは以下のとおりです。Java:
src/main/resourcesディレクトリに設定ファイルを配置すると、コンパイル時にクラスパスに自動的に含まれます。Go:プロジェクトルートディレクトリまたは専用の
configディレクトリに設定ファイルを配置し、コードを通じてロードします。Python:プロジェクトディレクトリまたは特定の
configディレクトリに設定ファイルを配置し、適切な方法 (os.pathやpkg_resourcesなど) を使用してロードします。
カスタム設定ファイルを使用する場合は、クライアント初期化時にファイルパス (
#customConfigFileName#) を指定する必要があります。
設定ファイル
専用ゲートウェイ
# 認証情報タイプ credentials_type=oidc_role_arn # ロール ARN (省略可能。指定しない場合は、デフォルト認証情報プロバイダーチェーンが使用されます) credentials_role_arn=<role_arn> # OIDC プロバイダー ARN (省略可能。指定しない場合は、デフォルト認証情報プロバイダーチェーンが使用されます) credentials_oidc_provider_arn=<oidc_provider_arn> # OIDC トークンファイルパス (省略可能。指定しない場合は、デフォルト認証情報プロバイダーチェーンが使用されます) credentials_oidc_token_file_path=<oidc_token_file_path> # KMS リージョンおよびインスタンスエンドポイント cache_client_region_id=[{"regionId":"<regionId>","endpoint":"<your_kms_instance_id>.cryptoservice.kms.aliyuncs.com"}]# 認証情報タイプ credentials_type=oidc_role_arn # ロール ARN (省略可能。指定しない場合は、デフォルト認証情報プロバイダーチェーンが使用されます) credentials_role_arn=<role_arn> # OIDC プロバイダー ARN (省略可能。指定しない場合は、デフォルト認証情報プロバイダーチェーンが使用されます) credentials_oidc_provider_arn=<oidc_provider_arn> # OIDC トークンファイルパス (省略可能。指定しない場合は、デフォルト認証情報プロバイダーチェーンが使用されます) credentials_oidc_token_file_path=<oidc_token_file_path> # 関連付けられた KMS リージョン cache_client_region_id=[{"regionId":"<regionId>"}]共有ゲートウェイ (VPC)
# 認証情報タイプ credentials_type=oidc_role_arn # ロール ARN (省略可能。指定しない場合は、デフォルト認証情報プロバイダーチェーンが使用されます) credentials_role_arn=<role_arn> # OIDC プロバイダー ARN (省略可能。指定しない場合は、デフォルト認証情報プロバイダーチェーンが使用されます) credentials_oidc_provider_arn=<oidc_provider_arn> # OIDC トークンファイルパス (省略可能。指定しない場合は、デフォルト認証情報プロバイダーチェーンが使用されます) credentials_oidc_token_file_path=<oidc_token_file_path> # 関連付けられた KMS リージョンおよび VPC エンドポイント cache_client_region_id=[{"regionId":"#regionId#","endpoint":"kms-vpc.#regionId#.aliyuncs.com","vpc":"true"}]
環境変数
パラメーター | 値 |
| 固定値: |
| OIDC ID プロバイダー向け RAM ロールの ARN。省略可能です。指定しない場合は、デフォルト認証情報プロバイダーチェーン が使用されます。 |
| OIDC ID プロバイダーの ARN。省略可能です。指定しない場合は、デフォルト認証情報プロバイダーチェーン が使用されます。 |
| OIDC トークンを格納するファイルの相対パスまたは絶対パス。省略可能です。指定しない場合は、デフォルト認証情報プロバイダーチェーン が使用されます。 |
|
|
AK+RamRoleArn
RAM Role ARN 情報をデフォルトの環境変数および設定ファイルから読み取るのは、SDK 1.0 のみがサポートしています。SDK 2.0 はサポートしていません。SDK 2.0 でこの機能が必要な場合は、テクニカルサポートにお問い合わせください。
ステップ 1:RAM ロール ARN の作成と権限の構成
RAM ユーザーまたはクラウドサービスは、長期キーを使用する代わりにロールを偽装して一時的な権限 (STS トークン) を取得することで、キー漏洩のリスクを軽減できます。たとえば、一時的なデータ処理タスクでは、RAM ユーザーまたはクラウドサービスが特定の RamRoleArn を持つロールを一時的に偽装します。タスクが完了すると、ロール権限は取り消され、漏洩リスクを最小限に抑えることができます。
ユーザー AccessKey ペアの作成
RAM コンソール にログインします。左側のナビゲーションウィンドウで、 を選択します。ユーザーページで、対象の RAM ユーザーの名前をクリックします。
AliyunSTSAssumeRoleAccessシステムポリシー、またはsts:AssumeRoleアクションを含むカスタムポリシーを RAM ユーザーにアタッチします。認証管理 タブの AccessKey セクションで、Create AccessKey をクリックし、画面の指示に従います。
RAM ロールの作成と権限付与:
左側のナビゲーションウィンドウで、 を選択します。ロールページで、ロールの作成 をクリックします。詳細については、「RAM ロールの作成」をご参照ください。
KMS へのアクセス権限を RAM ロールに付与します。
方法 1:ID ベースのポリシーの構成
RAM ロールの 操作 列で、権限の付与 をクリックして、RAM ロールに KMS の組み込みシステム権限ポリシーをアタッチします。KMS のシステム権限ポリシーの詳細については、「KMS のシステムポリシー」をご参照ください。
説明カスタム権限ポリシーを作成することもできます。詳細については、「カスタムポリシーの作成」をご参照ください。
方法 2:リソースベースのポリシーの構成
KMS は、個々のキーおよびシークレットに対するアクセス権限を付与するリソースベースのポリシーをサポートしています。これらのポリシーを使用して、どの Alibaba Cloud アカウント、RAM ユーザー、および RAM ロールが KMS キーおよびシークレットを管理または使用できるかを制御できます。詳細については、「キーポリシー」および「シークレットポリシー」をご参照ください。
対象の RAM ロールの RamRoleArn を取得します。詳細については、「RAM ロール情報の表示」をご参照ください。
左側のナビゲーションウィンドウで、 を選択します。ロールページで、対象ロールの名前をクリックします。
ロール詳細ページの ARN セクションで、RamRoleArn を確認します。
説明RamRoleArn は、偽装する RAM ロールの Alibaba Cloud リソースネーム (ARN) です。形式は
acs:ram::$accountID:role/$roleNameで、$accountIDは Alibaba Cloud アカウント ID、$roleNameは RAM ロール名です。
ステップ 2:環境変数または設定ファイルの設定
SDK は、アクセス認証情報を取得するための以下の 2 つの方法をサポートしています。
環境変数:オペレーティングシステムごとに設定方法が異なります。詳細については、をご参照ください。
警告パラメーター名を変更しないでください。変更すると、SDK が認識できなくなります。
設定ファイル:デフォルトの設定ファイルは
secretsmanager.propertiesです (ファイル名は変更できません)。アプリケーションが設定ファイルを正しくロードできるように、適切な設定ディレクトリに配置してください。言語別の一般的な設定ディレクトリは以下のとおりです。Java:
src/main/resourcesディレクトリに設定ファイルを配置すると、コンパイル時にクラスパスに自動的に含まれます。Go:プロジェクトルートディレクトリまたは専用の
configディレクトリに設定ファイルを配置し、コードを通じてロードします。Python:プロジェクトディレクトリまたは特定の
configディレクトリに設定ファイルを配置し、適切な方法 (os.pathやpkg_resourcesなど) を使用してロードします。
カスタム設定ファイルを使用する場合は、クライアント初期化時にファイルパス (
#customConfigFileName#) を指定する必要があります。
設定ファイル
専用ゲートウェイ
# 認証情報タイプ credentials_type=ram_role # ロールセッション名 credentials_role_session_name=#role_session_name# # ロール ARN credentials_role_arn=#role_arn# # AccessKey ID credentials_access_key_id=#access_key_id# # AccessKey Secret credentials_access_secret=#access_key_secret# # 専用 KMS インスタンスゲートウェイ用の以下の構成を使用 cache_client_region_id=[{"regionId":"<regionId>","endpoint":"<your_kms_instance_id>.cryptoservice.kms.aliyuncs.com"}]# 認証情報タイプ credentials_type=ram_role # ロールセッション名 credentials_role_session_name=#role_session_name# # ロール ARN credentials_role_arn=#role_arn# # AccessKey ID credentials_access_key_id=#access_key_id# # AccessKey Secret credentials_access_secret=#access_key_secret# # 関連付けられた KMS リージョン cache_client_region_id=[{"regionId":"#regionId#"}]共有ゲートウェイ (VPC)
# 認証情報タイプ credentials_type=ram_role # ロールセッション名 credentials_role_session_name=#role_session_name# # ロール ARN credentials_role_arn=#role_arn# # AccessKey ID credentials_access_key_id=#access_key_id# # AccessKey Secret credentials_access_secret=#access_key_secret# # 関連付けられた KMS リージョンおよび VPC エンドポイント cache_client_region_id=[{"regionId":"#regionId#","endpoint":"kms-vpc.#regionId#.aliyuncs.com","vpc":"true"}]
環境変数
パラメーター | 値 |
|
|
| RAM ロールセッションの名前。 |
| RAM ロールの ARN。 |
| AccessKey ID。 |
| AccessKey Secret。 |
|
|
ClientKey (非推奨)
ClientKey 認証情報タイプは、SDK 1.0 のみがサポートしています。SDK 2.0 はサポートしていません。
共有ゲートウェイ
専用ゲートウェイ
ステップ 1:ClientKey の作成
ClientKey は、クイック作成モードまたは標準作成モードのいずれかを使用して作成できます。ClientKey の詳細については、「アプリケーションアクセスポイント」および「アプリケーションアクセスポイントの作成」をご参照ください。
方法 1:クイック作成
この方法は便利で効率的であり、迅速なテストや開発に適しています。この方法で作成されたアクセス認証情報は、KMS インスタンス内のすべてのリソースへのフルアクセス権を持ちます。
Key Management Service コンソール にログインします。上部のナビゲーションバーでリージョンを選択し、左側のナビゲーションウィンドウで、 を選択します。
アプリケーションアクセス タブで、Create AAP をクリックします。Create AAP パネルで、パラメーターを構成します。
パラメーター
説明
Mode
Quick Creation を選択します。
Scope (KMS Instance)
アプリケーションがアクセスする必要がある KMS インスタンスを選択します。
Application Access Point Name
アプリケーションアクセスポイントの名前を入力します。
Authentication Method
これは ClientKey に設定されており、変更できません。
Default Permission Policy
値は
key/*secret/*で、変更できません。つまり、アプリケーションは指定された KMS インスタンス内のすべてのキーおよびシークレットにアクセスできます。OK をクリックします。ブラウザが自動的に ClientKey をダウンロードします。ClientKey には以下のファイルが含まれます。
Credential (ClientKeyContent): デフォルトのファイル名は
clientKey_****.jsonです。認証情報パスワード (ClientKeyPassword): デフォルトのファイル名は
clientKey_****_Password.txtです。
方法 2:標準作成
リソースに対する詳細なアクセス権限を構成する必要がある場合は、標準作成方法の使用を推奨します。
「アプリケーションアクセスポイントの作成」の標準作成手順に従って、専用ゲートウェイにアクセスするための ClientKey を作成します。主なパラメーターは以下のとおりです。
ネットワークリュールを構成する際、ネットワークタイプを プライベート に選択します。
権限ルールのスコープを構成する際、対応する KMS インスタンス ID を選択します。
作成後、ブラウザが自動的に ClientKey をダウンロードします。これには以下が含まれます。
Credential (ClientKeyContent):デフォルトのファイル名は
clientKey_****.jsonです。認証情報パスワード (ClientKeyPassword): デフォルトのファイル名は
clientKey_****_Password.txtです。
ステップ 2:環境変数または設定ファイルの構成
環境変数:オペレーティングシステムごとに設定方法が異なります。詳細については、をご参照ください。
警告パラメーター名を変更しないでください。変更すると、SDK が認識できなくなります。
設定ファイル:デフォルトの設定ファイルは
secretsmanager.propertiesです (ファイル名は変更できません)。アプリケーションが設定ファイルを正しくロードできるように、適切な設定ディレクトリに配置してください。言語別の一般的な設定ディレクトリは以下のとおりです。Java:
src/main/resourcesディレクトリに設定ファイルを配置すると、コンパイル時にクラスパスに自動的に含まれます。Go:プロジェクトルートディレクトリまたは専用の
configディレクトリに設定ファイルを配置し、コードを通じてロードします。Python:プロジェクトディレクトリまたは特定の
configディレクトリに設定ファイルを配置し、適切な方法 (os.pathやpkg_resourcesなど) を使用してロードします。
カスタム設定ファイルを使用する場合は、クライアント初期化時にファイルパス (
#customConfigFileName#) を指定する必要があります。
設定ファイル
方法 1:ファイルパスの構成
cache_client_dkms_config_info=[{"regionId":"<your_dkms_region_id>","endpoint":"<your_dkms_endpoint>","passwordFromFilePath":"<your_password_file_path>","clientKeyFile":"<your_client_key_file_path>","ignoreSslCerts":false,"caFilePath":"<your_ca_certificate_file_path>"}]
方法 2:環境変数経由でのパスワード構成
cache_client_dkms_config_info=[{"regionId":"<your_dkms_region_id>","endpoint":"<your_dkms_endpoint>","passwordFromEnvVariable":"<YOUR_PASSWORD_ENV_VARIABLE>","clientKeyFile":"<your_client_key_file_path>","ignoreSslCerts":false,"caFilePath":"<your_ca_certificate_file_path>"}]
環境変数
SDK は、ClientKey 認証情報パスワードを構成するための 2 つの方法をサポートしています。
方法 1:ClientKey パスワードファイルのファイルパスを構成
パラメーター
値
cache_client_dkms_config_info形式:
[{"regionId":"<your_dkms_region_id>","endpoint":"<your_dkms_endpoint>","passwordFromFilePath":"<your_password_file_path>","clientKeyFile":"<your_client_key_file_path>","ignoreSslCerts":false,"caFilePath":"<your_ca_certificate_file_path>"}]。方法 2:環境変数経由での ClientKey パスワードコンテンツの構成
パラメーター
値
cache_client_dkms_config_info形式:
[{"regionId":"<your_dkms_region_id>","endpoint":"<your_dkms_endpoint>","passwordFromEnvVariable":"<YOUR_PASSWORD_ENV_VARIABLE>","clientKeyFile":"<your_client_key_file_path>","ignoreSslCerts":false,"caFilePath":"<your_ca_certificate_file_path>"}]。
cache_client_dkms_config_info のパラメーター
パラメーター | 説明 |
| KMS インスタンスがデプロイされているリージョン ID。リージョン ID については、「リージョンとゾーン」をご参照ください。 |
| KMS インスタンスのエンドポイント。形式は |
| 認証情報-ClientKeyContent ファイル ( |
| ClientKeyPassword ファイル ( |
| ClientKeyPassword コンテンツを格納する環境変数の名前 (例: |
| KMS インスタンスの SSL 証明書検証をスキップするかどうかを指定します。KMS インスタンスには組み込みの SSL 証明書があり、SSL/TLS プロトコルとともに本人確認および暗号化通信に使用されます。有効値:
|
| KMS インスタンス CA 証明書ファイルの絶対パスまたは相対パス。 説明 CA 証明書は、KMS インスタンス SSL 証明書の検証に使用されます。CA 証明書の取得方法の詳細については、「KMS インスタンス CA 証明書の取得」をご参照ください。 |
シークレットの取得
以下のすべての例は、SDK 2.0 を使用しています。SDK 1.0 の例については、SDK 1.0 ソースコードリポジトリ をご参照ください。
Java
デフォルト構成の使用
SDK は、secretsmanager.properties ファイルまたは環境変数から認証情報情報を自動的に読み取ります。
import com.aliyuncs.kms.secretsmanager.client.V2.0.SecretCacheClient;
import com.aliyuncs.kms.secretsmanager.client.V2.0.SecretCacheClientBuilder;
import com.aliyuncs.kms.secretsmanager.client.V2.0.exception.CacheSecretException;
import com.aliyuncs.kms.secretsmanager.client.V2.0.model.SecretInfo;
public class CacheClientEnvironmentSample {
public static void main(String[] args) {
try {
SecretCacheClient client = SecretCacheClientBuilder.newClient();
SecretInfo secretInfo = client.getSecretInfo("#secretName#");
System.out.println(secretInfo);
} catch (CacheSecretException e) {
e.printStackTrace();
}
}
}
カスタム設定ファイルの使用
設定ファイルがデフォルトのファイル名またはパスを使用していない場合に、この方法を使用します。設定ファイルパス (#customConfigFileName#) を指定します。
import com.aliyuncs.kms.secretsmanager.client.V2.0.SecretCacheClient;
import com.aliyuncs.kms.secretsmanager.client.V2.0.SecretCacheClientBuilder;
import com.aliyuncs.kms.secretsmanager.client.V2.0.exception.CacheSecretException;
import com.aliyuncs.kms.secretsmanager.client.V2.0.model.SecretInfo;
import com.aliyuncs.kms.secretsmanager.client.V2.0.service.BaseSecretManagerClientBuilder;
public class CacheClientCustomConfigFileSample {
public static void main(String[] args) {
try {
SecretCacheClient client = SecretCacheClientBuilder.newCacheClientBuilder(
BaseSecretManagerClientBuilder.standard()
.withCustomConfigFile("#customConfigFileName#")
.build())
.build();
SecretInfo secretInfo = client.getSecretInfo("#secretName#");
System.out.println(secretInfo);
} catch (CacheSecretException e) {
System.out.println("CacheSecretException: " + e.getMessage());
}
}
}
ハードコーディングされた認証情報の使用
この方法では、クライアント初期化時に AccessKey およびリージョン情報を直接渡すため、設定ファイルまたは環境変数に AccessKey を書き込む必要がありません。
import com.aliyuncs.kms.secretsmanager.client.V2.0.SecretCacheClient;
import com.aliyuncs.kms.secretsmanager.client.V2.0.SecretCacheClientBuilder;
import com.aliyuncs.kms.secretsmanager.client.V2.0.exception.CacheSecretException;
import com.aliyuncs.kms.secretsmanager.client.V2.0.model.RegionInfo;
import com.aliyuncs.kms.secretsmanager.client.V2.0.service.BaseSecretManagerClientBuilder;
import com.aliyuncs.kms.secretsmanager.client.V2.0.utils.CredentialsProviderUtils;
public class CacheClientWithCaCertificateSample {
public static void main(String[] args) {
try {
// CA 証明書パスを含む RegionInfo を作成
RegionInfo regionInfo = new RegionInfo();
regionInfo.setRegionId("#regionId#");
// 専用ゲートウェイエンドポイント。共有ゲートウェイを使用する場合は省略。
regionInfo.setEndpoint("<your_kms_instance_id>.cryptoservice.kms.aliyuncs.com");
SecretCacheClient client = SecretCacheClientBuilder.newCacheClientBuilder(
BaseSecretManagerClientBuilder.standard()
.withCredentialsProvider(CredentialsProviderUtils.withAccessKey(
System.getenv("#accessKeyId#"),
System.getenv("#accessKeySecret#")))
.addRegion(regionInfo)
.build())
.build();
SecretInfo secretInfo = client.getSecretInfo("#secretName#");
} catch (CacheSecretException e) {
e.printStackTrace();
}
}
}
Alibaba Cloud デフォルト認証情報プロバイダーチェーン の使用
デフォルト認証情報プロバイダーチェーンは、フォールバック戦略です。認証情報が見つかるまで、事前定義された順序で認証情報を検索します。すべての方法が失敗した場合、認証は失敗し、認証情報を取得できません。
import com.aliyuncs.kms.secretsmanager.client.V2.0.SecretCacheClient;
import com.aliyuncs.kms.secretsmanager.client.V2.0.SecretCacheClientBuilder;
import com.aliyuncs.kms.secretsmanager.client.V2.0.exception.CacheSecretException;
import com.aliyuncs.kms.secretsmanager.client.V2.0.model.SecretInfo;
import com.aliyuncs.kms.secretsmanager.client.V2.0.service.BaseSecretManagerClientBuilder;
public class CacheClientDefaultCredentialChainSample {
public static void main(String[] args) {
try {
SecretCacheClient client = SecretCacheClientBuilder.newCacheClientBuilder(
BaseSecretManagerClientBuilder.standard()
.withRegion("#regionId#")
.build())
.build();
SecretInfo secretInfo = client.getSecretInfo("#secretName#");
System.out.println(secretInfo);
} catch (CacheSecretException e) {
e.printStackTrace();
}
}
}
その他の例については、「Secrets Manager Client SDK Examples」をご参照ください。
Python
デフォルト構成の使用
SDK は、secretsmanager.properties ファイルまたは環境変数から認証情報情報を自動的に読み取ります。
from alibabacloud_secretsmanager_client_V2.0.secret_manager_cache_client_builder import SecretManagerCacheClientBuilder
if __name__ == '__main__':
secret_cache_client = SecretManagerCacheClientBuilder.new_client()
secret_info = secret_cache_client.get_secret_info("#secretName#")
print(secret_info.__dict__)
カスタム設定ファイルの使用
設定ファイルがデフォルトのファイル名またはパスを使用していない場合に、この方法を使用します。
from alibabacloud_secretsmanager_client_V2.0.secret_manager_cache_client_builder import SecretManagerCacheClientBuilder
from alibabacloud_secretsmanager_client_V2.0.service.default_secret_manager_client_builder import DefaultSecretManagerClientBuilder
if __name__ == '__main__':
secret_cache_client = SecretManagerCacheClientBuilder.new_cache_client_builder(
DefaultSecretManagerClientBuilder.standard()
.with_custom_config_file("#customConfigFileName#")
.build()
).build()
secret_info = secret_cache_client.get_secret_info("#secretName#")
print(secret_info.__dict__)
ハードコーディングされた認証情報の使用
この方法では、クライアント初期化時に AccessKey およびリージョン情報を直接渡します。
import os
from alibabacloud_secretsmanager_client_V2.0.secret_manager_cache_client_builder import SecretManagerCacheClientBuilder
from alibabacloud_secretsmanager_client_V2.0.service.default_secret_manager_client_builder import \
DefaultSecretManagerClientBuilder
from alibabacloud_secretsmanager_client_V2.0.model.region_info import RegionInfo
if __name__ == '__main__':
# CA 証明書パスを含む RegionInfo を作成
region_info = RegionInfo(
region_id="#regionId#",
endpoint="#kmsInstanceEndpoint#", # 専用ゲートウェイエンドポイント。共有ゲートウェイを使用する場合は省略。
)
secret_cache_client = SecretManagerCacheClientBuilder.new_cache_client_builder(
DefaultSecretManagerClientBuilder.standard()
.with_access_key(
os.getenv("#accessKeyId#"),
os.getenv("#accessKeySecret#")
)
.add_region_info(region_info)
.build()
).build()
# ... クライアントを使用
Alibaba Cloud デフォルト認証情報プロバイダーチェーン の使用
from alibabacloud_secretsmanager_client_V2.0.secret_manager_cache_client_builder import SecretManagerCacheClientBuilder
from alibabacloud_secretsmanager_client_V2.0.service.default_secret_manager_client_builder import DefaultSecretManagerClientBuilder
if __name__ == '__main__':
secret_cache_client = SecretManagerCacheClientBuilder.new_cache_client_builder(
DefaultSecretManagerClientBuilder.standard()
.with_region("#regionId#")
.build()
).build()
secret_info = secret_cache_client.get_secret_info("#secretName#")
print(secret_info.__dict__)
その他の例については、「Secrets Manager Client SDK Examples」をご参照ください。
Go
デフォルト構成の使用
package main
import "github.com/aliyun/alibabacloud-secretsmanager-client-go-V2.0/sdk"
func main() {
client, err := sdk.NewClient()
if err != nil {
// 例外を処理
panic(err)
}
secretInfo, err := client.GetSecretInfo("#secretName#")
if err != nil {
// 例外を処理
panic(err)
}
}
カスタム設定ファイルの使用
package main
import (
"github.com/aliyun/alibabacloud-secretsmanager-client-go-V2.0/sdk"
"github.com/aliyun/alibabacloud-secretsmanager-client-go-V2.0/sdk/service"
)
func main() {
client, err := sdk.NewSecretCacheClientBuilder(
service.NewDefaultSecretManagerClientBuilder().Standard().
WithCustomConfigFile("#customConfigFileName#").Build()).Build()
if err != nil {
// 例外を処理
panic(err)
}
secretInfo, err := client.GetSecretInfo("#secretName#")
if err != nil {
// 例外を処理
panic(err)
}
}
ハードコーディングされた認証情報の使用
package main
import (
"github.com/aliyun/alibabacloud-secretsmanager-client-go-V2.0/sdk"
"github.com/aliyun/alibabacloud-secretsmanager-client-go-V2.0/sdk/models"
"github.com/aliyun/alibabacloud-secretsmanager-client-go-V2.0/sdk/service"
"os"
)
func main() {
regionInfo := &models.RegionInfo{
RegionId: "#regionId#",
// 専用ゲートウェイエンドポイント。共有ゲートウェイを使用する場合は省略。
Endpoint: "<kmsInstanceId>.cryptoservice.kms.aliyuncs.com",
}
client, err := sdk.NewSecretCacheClientBuilder(
service.NewDefaultSecretManagerClientBuilder().
Standard().
WithAccessKey(os.Getenv("#accessKeyId#"), os.Getenv("#accessKeySecret#")).
AddRegionInfo(regionInfo).
Build()).Build()
if err != nil {
// 例外を処理
panic(err)
}
secretInfo, err := client.GetSecretInfo("#secretName#")
if err != nil {
// 例外を処理
panic(err)
}
}
Alibaba Cloud デフォルト認証情報プロバイダーチェーン の使用
package main
import (
"github.com/aliyun/alibabacloud-secretsmanager-client-go-V2.0/sdk"
"github.com/aliyun/alibabacloud-secretsmanager-client-go-V2.0/sdk/service"
)
func main() {
client, err := sdk.NewSecretCacheClientBuilder(
service.NewDefaultSecretManagerClientBuilder().Standard().
WithRegion("#regionId#").Build()).Build()
if err != nil {
// 例外を処理
panic(err)
}
secretInfo, err := client.GetSecretInfo("#secretName#")
if err != nil {
// 例外を処理
panic(err)
}
}
その他の例については、「Secrets Manager Client SDK Examples」をご参照ください。
Node.js
デフォルト構成の使用
SDK は、secretsmanager.properties ファイルまたは環境変数から認証情報情報を自動的に読み取ります。
import { SecretCacheClientBuilder } from 'alibabacloud-secretsmanager-client-v2';
async function example() {
try {
// 環境変数またはデフォルト構成経由でクライアントをビルド
const client = await SecretCacheClientBuilder.newClient();
const secretInfo = await client.getSecretInfo('#secretName#');
console.log(secretInfo);
} catch (error) {
console.error('Error:', error);
}
}
example();カスタム設定ファイルの使用
設定ファイルがデフォルトのファイル名またはパスを使用していない場合に、この方法を使用します。設定ファイルパスを指定します。
import {
SecretCacheClientBuilder,
BaseSecretManagerClientBuilder,
CredentialsProviderUtils
} from 'alibabacloud-secretsmanager-client-v2';
async function example() {
try {
const client = await SecretCacheClientBuilder.newCacheClientBuilder(
BaseSecretManagerClientBuilder.standard().withCustomConfigFile('#customConfigFileName#').build()
).build();
const secretInfo = await client.getSecretInfo('#secretName#');
console.log(secretInfo);
} catch (error) {
console.error('Error:', error);
}
}
example();ハードコーディングされた認証情報の使用
この方法では、クライアント初期化時に AccessKey およびリージョン情報を直接渡します。
import {
SecretCacheClientBuilder,
BaseSecretManagerClientBuilder,
CredentialsProviderUtils,
RegionInfo
} from 'alibabacloud-secretsmanager-client-v2';
async function example() {
try {
// CA 証明書パスを含む RegionInfo を作成
const regionInfo = new RegionInfo();
regionInfo.setRegionId('#regionId#');
regionInfo.setEndpoint('#kmsInstanceEndpoint#'); // KMS インスタンスアドレスを指定
const client = await SecretCacheClientBuilder.newCacheClientBuilder(
BaseSecretManagerClientBuilder.standard()
.withCredentialsProvider(
CredentialsProviderUtils.withAccessKey(
process.env['#accessKeyId#'],
process.env['#accessKeySecret#']
)
)
.addRegionInfo(regionInfo) // CA 証明書パスを含む RegionInfo を使用
.build()
).build();
const secretInfo = await client.getSecretInfo('#secretName#');
console.log(secretInfo);
} catch (error) {
console.error('Error:', error);
}
}
example();Alibaba Cloud デフォルト認証情報プロバイダーチェーン の使用
import {
SecretCacheClientBuilder,
BaseSecretManagerClientBuilder,
CredentialsProviderUtils
} from 'alibabacloud-secretsmanager-client-v2';
async function example() {
try {
const client = await SecretCacheClientBuilder.newCacheClientBuilder(
BaseSecretManagerClientBuilder.standard()
.withCredentialsProvider(CredentialsProviderUtils.withDefaultCredential())
.withRegion('#regionId#')
.build()
).build();
const secretInfo = await client.getSecretInfo('#secretName#');
console.log(secretInfo);
} catch (error) {
console.error('Error:', error);
}
}
example();その他の例については、「Secrets Manager Client SDK Examples」をご参照ください。
よくある質問
「cannot find the built-in CA certificate for region[$regionId], please provide the caFilePath parameter.」というエラーが発生した場合はどうすればよいですか?
原因:指定されたリージョンの組み込み CA 証明書が SDK に存在しません。
解決策:
SDK を最新の V2.0 バージョンに更新します。
最新バージョンに更新してもエラーが解消しない場合は、最新の CA 証明書をダウンロードし (KMS コンソールの インスタンス管理 > インスタンス詳細 から入手可能)、CA 証明書パスを渡します。以下のいずれかの方法を使用できます。
環境変数経由での渡し方
caFilePathパラメーターをcache_client_region_id構成に追加します。# CA 証明書パスおよびインスタンスエンドポイントを含む関連付けられた KMS リージョン cache_client_region_id=[{"regionId":"<regionId>","endpoint":"<kmsInstanceId>.cryptoservice.kms.aliyuncs.com","caFilePath":"<ca_certificate_file_path>"}]設定ファイル経由での渡し方
caFilePathパラメーターをsecretsmanager.propertiesまたはカスタム設定ファイルに追加します。# CA 証明書パスおよびインスタンスエンドポイントを含む関連付けられた KMS リージョン cache_client_region_id=[{"regionId":"<regionId>","endpoint":"<kmsInstanceId>.cryptoservice.kms.aliyuncs.com","caFilePath":"<ca_certificate_file_path>"}]ハードコーディングされた認証情報経由での渡し方
import com.aliyuncs.kms.secretsmanager.client.V2.0.SecretCacheClient; import com.aliyuncs.kms.secretsmanager.client.V2.0.SecretCacheClientBuilder; import com.aliyuncs.kms.secretsmanager.client.V2.0.exception.CacheSecretException; import com.aliyuncs.kms.secretsmanager.client.V2.0.model.RegionInfo; import com.aliyuncs.kms.secretsmanager.client.V2.0.service.BaseSecretManagerClientBuilder; import com.aliyuncs.kms.secretsmanager.client.V2.0.utils.CredentialsProviderUtils; public class CacheClientWithCaCertificateSample { public static void main(String[] args) { try { // CA 証明書パスを含む RegionInfo を作成 RegionInfo regionInfo = new RegionInfo(); regionInfo.setRegionId("#regionId#"); regionInfo.setEndpoint("#kmsInstanceEndpoint#"); // KMS インスタンスエンドポイントを指定 regionInfo.setCaFilePath("#caFilePath#"); // CA 証明書ファイルパスを指定 SecretCacheClient client = SecretCacheClientBuilder.newCacheClientBuilder( BaseSecretManagerClientBuilder.standard() .withCredentialsProvider(CredentialsProviderUtils.withAccessKey( System.getenv("#accessKeyId#"), System.getenv("#accessKeySecret#"))) .addRegion(regionInfo) // CA 証明書パスを含む RegionInfo を使用 .build()) .build(); // ... クライアントを使用 } catch (CacheSecretException e) { e.printStackTrace(); } } }import os from alibabacloud_secretsmanager_client_V2.0.secret_manager_cache_client_builder import SecretManagerCacheClientBuilder from alibabacloud_secretsmanager_client_V2.0.service.default_secret_manager_client_builder import \ DefaultSecretManagerClientBuilder from alibabacloud_secretsmanager_client_V2.0.model.region_info import RegionInfo if __name__ == '__main__': # CA 証明書パスを含む RegionInfo を作成 region_info = RegionInfo( region_id="#regionId#", endpoint="#kmsInstanceEndpoint#", # KMS インスタンスエンドポイントを指定 ca_file_path="#caFilePath#" # CA 証明書ファイルパスを指定 ) secret_cache_client = SecretManagerCacheClientBuilder.new_cache_client_builder( DefaultSecretManagerClientBuilder.standard() .with_access_key( os.getenv("#accessKeyId#"), os.getenv("#accessKeySecret#") ) .add_region_info(region_info) # CA 証明書パスを含む RegionInfo を使用 .build() ).build() # ... クライアントを使用package main import ( "github.com/aliyun/alibabacloud-secretsmanager-client-go-V2.0/sdk" "github.com/aliyun/alibabacloud-secretsmanager-client-go-V2.0/sdk/models" "github.com/aliyun/alibabacloud-secretsmanager-client-go-V2.0/sdk/service" "os" ) func main() { // CA 証明書パスを含む RegionInfo を作成 regionInfo := &models.RegionInfo{ RegionId: "#regionId#", Endpoint: "#kmsInstanceEndpoint#", // KMS インスタンスエンドポイントを指定 CaFilePath: "#caFilePath#", // CA 証明書ファイルパスを指定 } client, err := sdk.NewSecretCacheClientBuilder( service.NewDefaultSecretManagerClientBuilder(). Standard(). WithAccessKey(os.Getenv("#accessKeyId#"), os.Getenv("#accessKeySecret#")). AddRegionInfo(regionInfo). // CA 証明書パスを含む RegionInfo を使用 Build()).Build() if err != nil { // 例外を処理 panic(err) } secretInfo, err := client.GetSecretInfo("#secretName#") if err != nil { // 例外を処理 panic(err) } }import { SecretCacheClientBuilder, BaseSecretManagerClientBuilder, CredentialsProviderUtils, RegionInfo } from 'alibabacloud-secretsmanager-client-v2'; async function example() { try { // CA 証明書パスを含む RegionInfo を作成 const regionInfo = new RegionInfo(); regionInfo.setRegionId('#regionId#'); regionInfo.setEndpoint('#kmsInstanceEndpoint#'); // KMS インスタンスアドレスを指定 regionInfo.setCaFilePath('#caFilePath#'); // CA 証明書ファイルパスを指定 const client = await SecretCacheClientBuilder.newCacheClientBuilder( BaseSecretManagerClientBuilder.standard() .withCredentialsProvider( CredentialsProviderUtils.withAccessKey( process.env['#accessKeyId#'], process.env['#accessKeySecret#'] ) ) .addRegionInfo(regionInfo) // CA 証明書パスを含む RegionInfo を使用 .build() ).build(); const secretInfo = await client.getSecretInfo('#secretName#'); console.log(secretInfo); } catch (error) { console.error('Error:', error); } } example();
「env/config credentials type[client_key] is illegal」というエラーが発生した場合はどうすればよいですか?
原因:Alibaba Cloud Secrets Manager Client SDK 2.0 は、ClientKey 認証情報タイプをサポートしていません。
解決策:
AccessKey、ECS RAM ロール、OIDC ロール ARN などのサポートされている認証情報タイプに切り替えてください。詳細については、「アクセス認証情報の構成」をご参照ください。
SDK 1.0 にダウングレードします (推奨されません)。