カスタム認証情報の秘密の作成
カスタム資格情報シークレットタイプにより、 IBM Cloud® Secrets Manager ユーザーは、 Secrets Manager API や統合を通じて、外部システム( Artifactory や PagerDuty など)の資格情報を安全に管理できる。 これらのシークレットを作成するには、 Secrets Manager と外部サービス間のブリッジとして機能する IBM Cloud® Code Engine ジョブをデプロイする。 これらのジョブは固定スケジュールで実行され、 シークレットタスクを 使用してクレデンシャルを非同期で管理する。
カスタムのクレデンシャルを作成するプロセスは、設計上非同期である。 新しいシークレットが追加されると、最初はアクティブ化前の状態になる。 外部資格情報プロバイダでシークレットの作成に成功すると、その状態は自動的に Secrets Manager 内でアクティブになる。
カスタム資格情報の秘密作成プロセスは非同期である。 シークレットが追加されると、 pre-activation 状態から開始され、クレデンシャル・プロバイダで正常に作成された場合、その状態は Secrets Manager で active に変更される。
開始前に
始める前に、あなたが持っていることを確認してください:
- 必要なアクセスレベル。 シークレットを作成または追加するには、ライター・サービス・ロールまたはそれ以上が必要です。
- Code Engine ジョブとカスタム資格情報エンジン構成を作成する ことによって、カスタム資格情報シークレットを作成するようにインスタンスを構成します。
コンソールでカスタム認証情報シークレットを作成する
秘密を追加する:
- **「シークレット」テーブルで、「追加」**をクリックします。
- 秘密タイプのリストから、 カスタム資格情報タイルをクリックする。
- 次へ をクリックします。
- シークレットを容易に識別できる名前と説明を追加します。
- 以前に作成した 秘密グループをインスタンス内に含まれているシークレットが準拠する必要のある環境と制約。 ユーザーをシークレット・グループに関連付けることで、アクセス権限とコラボレーションを有効にできます。 選択します。
- オプション: インスタンス内の類似シークレットを検索しやすくするためのラベルを追加します。
- オプション:あなたの秘密、またはあなたの秘密の特定のバージョンにメタデータを追加します。
- ファイルをアップロードするか、JSON形式でメタデータとバージョンメタデータを入力します。
- 次へ をクリックします。
- このシークレットに使用するカスタム資格情報エンジン構成を選択します。
- Parametersに必要な値を入力する。
- 次へ をクリックします。
- オプション:シークレットの最小期間と自動ローテーションを有効にします。
- 次へ をクリックします。
- 秘密の詳細を確認する
- 追加 をクリックします。
パラメータの値は後で変更できる。 この変更は、新しいシークレットバージョンが作成された後に行われる。 新しいコンフィギュレーションを作成することなく、新しいパラメーターを追加したり削除したりすることはできません。
コンソールでの秘密の詳細の表示と更新
他のシークレットと 同様に、 「アクション」 メニューの >「 詳細 」をクリックすることで、シークレットの詳細にアクセスすることができます。
詳細画面では、以下のことを知ることができる:
CLIからのカスタム認証情報秘密の作成
始める前に、 CLIのドキュメントに従って APIエンドポイントを設定してください。
Secrets Manager CLI プラグインを使用してカスタム資格情報シークレットを作成するには、次のコマンドを実行します。 ibmcloud secrets-manager secret-create コマンドを実行します。
ibmcloud secrets-manager secret-create --secret-type custom_credentials --secret-name "example-custom-credential-secret" --secret-description "Description of my custom credential secret" --secret-rotation '{"auto_rotate": true,"interval": 30,"unit": "day"}' --custom-credentials-parameters '{"my_input_parameter":"my_param_value"}' --custom-credentials-configuration '{"my_custom_credential_config"}' --secret-custom-metadata '{"metadata_custom_key": "metadata_custom_value"},"version_custom_metadata": {"custom_version_key": "custom_version_value"}}'
APIを使用したカスタム認証情報の秘密の作成
Secrets Manager API を呼び出すことで、カスタム・クレデンシャルをプログラムで作成できます。 API を呼び出す場合は、ID 変数と IAM トークンを、ご使用の Secrets Manager インスタンス固有の値で置き換えます。
custom_metadata 、 version_custom_metadata リクエストパラメータを使用して、組織のニーズに関連するメタデータを保存できます。 version_custom_metadata の値は、秘密のバージョンに対してのみ返される。 あなたの秘密のカスタム・メタデータは、他のすべてのメタデータと同様に、50バージョンまで保存されます。
curl -X POST
-H "Authorization: Bearer {IAM_token}" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"name": "example-custom-credential-secret",
"description": "Description of my custom credential secret",
"secret_type": "custom_credentials",
"secret_group_id": "bfc0a4a9-3d58-4fda-945b-76756af516aa",
"labels": [
"dev",
"us-south"
],
"rotation": {
"auto_rotate": true,
"interval": 30,
"unit": "day"
},
"configuration": "my_custom_credential_config",
"parameters": {
"user_name": "username",
"scope": "admin"
},
"custom_metadata": {
"metadata_custom_key": "metadata_custom_value"
},
"version_custom_metadata": {
"custom_version_key": "custom_version_value"
}
}'
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets"
Terraformを使ってカスタム認証情報シークレットを作成する
Terraform for Secrets Manager を使えば、カスタム認証シークレットをプログラムで作成できる。 次の例は、カスタム資格情報シークレットを作成するために使用できる設定を示している。
カスタムのクレデンシャル・シークレットの作成は非同期のプロセスであり、ユースケースによっては長い時間がかかる可能性がある。したがって、Terraformの利用を計画する際には、潜在的な遅延を考慮する必要がある。
resource "ibm_sm_custom_credentials_secret" "sm_custom_credentials_secret" {
instance_id = ibm_resource_instance.sm_instance.guid
region = "us-south"
name = "secret-name"
secret_group_id = ibm_sm_secret_group.sm_secret_group.secret_group_id
custom_metadata = {"key":"value"}
description = "Extended description for this secret."
labels = ["my-label"]
configuration = "my_custom_credentials_configuration"
parameters {
int_values = {
example_param_1 = 17
}
string_values = {
example_param_2 = "str2"
example_param_3 = "str3"
}
bool_values = {
example_param_4 = false
}
}
rotation {
auto_rotate = true
interval = 3
unit = "day"
}
ttl = "864000"
}
Terraform IBM Modules (TIM) for Secrets Manager Custom Credentials Engine を活用することで、繰り返し設定可能なコードとしてカスタムクレデンシャルを定義できます。 Terraform IBM モジュールを使って みよう。