カスタム認証情報の秘密の作成

カスタム資格情報シークレットタイプにより、 IBM Cloud® Secrets Manager ユーザーは、 Secrets Manager API や統合を通じて、外部システム( Artifactory や PagerDuty など)の資格情報を安全に管理できる。 これらのシークレットを作成するには、 Secrets Manager と外部サービス間のブリッジとして機能する IBM Cloud® Code Engine ジョブをデプロイする。 これらのジョブは固定スケジュールで実行され、 シークレットタスクを 使用してクレデンシャルを非同期で管理する。

カスタムのクレデンシャルを作成するプロセスは、設計上非同期である。 新しいシークレットが追加されると、最初はアクティブ化前の状態になる。 外部資格情報プロバイダでシークレットの作成に成功すると、その状態は自動的に Secrets Manager 内でアクティブになる。

カスタム資格情報の秘密作成プロセスは非同期である。 シークレットが追加されると、 pre-activation 状態から開始され、クレデンシャル・プロバイダで正常に作成された場合、その状態は Secrets Manager で active に変更される。

開始前に

始める前に、あなたが持っていることを確認してください:

コンソールでカスタム認証情報シークレットを作成する

秘密を追加する:

  1. **「シークレット」テーブルで、「追加」**をクリックします。
  2. 秘密タイプのリストから、 カスタム資格情報タイルをクリックする。
  3. 次へ をクリックします。
  4. シークレットを容易に識別できる名前と説明を追加します。
  5. 以前に作成した 秘密グループをインスタンス内に含まれているシークレットが準拠する必要のある環境と制約。 ユーザーをシークレット・グループに関連付けることで、アクセス権限とコラボレーションを有効にできます。 選択します。
  6. オプション: インスタンス内の類似シークレットを検索しやすくするためのラベルを追加します。
  7. オプション:あなたの秘密、またはあなたの秘密の特定のバージョンにメタデータを追加します。
    1. ファイルをアップロードするか、JSON形式でメタデータとバージョンメタデータを入力します。
  8. 次へ をクリックします。
  9. このシークレットに使用するカスタム資格情報エンジン構成を選択します。
  10. Parametersに必要な値を入力する。
  11. 次へ をクリックします。
  12. オプション:シークレットの最小期間と自動ローテーションを有効にします。
  13. 次へ をクリックします。
  14. 秘密の詳細を確認する
  15. 追加 をクリックします。

パラメータの値は後で変更できる。 この変更は、新しいシークレットバージョンが作成された後に行われる。 新しいコンフィギュレーションを作成することなく、新しいパラメーターを追加したり削除したりすることはできません。

コンソールでの秘密の詳細の表示と更新

他のシークレットと 同様に、 「アクション」 メニューの 「アクション」アイコン >「 詳細 」をクリックすることで、シークレットの詳細にアクセスすることができます。 詳細画面では、以下のことを知ることができる:

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_metadataversion_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 モジュールを使って みよう。