儲存使用者認證

您可以使用 IBM Cloud® Secrets Manager 儲存使用者名稱和密碼,用於登入和存取 IBM Cloud 內外的受保護服務。

使用者認證包含使用者名稱及密碼值,可用來登入或存取外部服務或應用程式。 您的密鑰安全地儲存在專用 Secrets Manager 服務實例中。 在實例中,您可以集中管理其生命週期,並透過設定到期日、自動輪換原則等來控制密鑰的有效期限。

在使用者憑證中,只有 中的密碼值可以輪換。 使用者名稱值一旦設置,就無法更改。

若要進一步瞭解您可以在 Secrets Manager中管理的密鑰類型,請參閱 何謂密鑰?

開始之前

開始之前,請確定您具有必要的存取層次。 若要建立或新增密鑰,您需要 撰寫者 服務角色或更高版本

在使用者介面中新增使用者認證

若要使用 Secrets Manager 使用者介面來儲存使用者名稱及密碼,請完成下列步驟。

  1. 在主控台中,按一下 功能表 圖示 「功能表」圖示 > 資源清單

  2. 從服務清單中,選取 Secrets Manager的實例。

  3. 密鑰 表格中,按一下 新增

  4. 從密鑰類型清單中,選取 使用者認證 磚。

  5. 下一步

  6. 新增名稱及說明,以輕鬆識別您的密鑰。

  7. 選取您要指派給密鑰的 密鑰群組實例中包含密鑰的環境及限制必須遵循。 使用者可以與秘密群組相關聯,以實現存取和協作。

    沒有秘密小組嗎? 在 密鑰群組 欄位中,您可以按一下 建立,以提供新群組的名稱及說明。 您的密鑰會自動新增至新群組。 如需密鑰群組的相關資訊,請參閱 組織密鑰

  8. 選用項目: 新增標籤以協助您在實例中搜尋類似的密鑰。

  9. 選用項目: 將 meta 資料新增至密鑰或密鑰的特定版本。

    1. 上傳檔案或以 JSON 格式輸入 meta 資料及版本 meta 資料。
  10. 下一步

  11. 輸入您要與密鑰相關聯的使用者名稱及密碼。

如果您選擇產生密碼,Secrets Manager 會將現有值取代為隨機產生的 32 個字元密碼,其中包含大寫字母、小寫字母、數字和符號。 您可以選擇進一步自訂產生的密碼,方法是配置其長度 (12-256 個字元),以及是否包含數字、符號和大寫字母。

  1. 選用項目: 啟用 expiration 及 rotation 選項,以控制密鑰的有效期限。
  2. 若要設定密鑰的到期日,請將到期切換開關切換為
  3. 若要以 30、60 或 90 天間隔輪替密鑰,請將 自動密鑰旋轉 切換開關切換至
  4. 下一步
  5. 檢閱密鑰的詳細資料。
  6. 按一下新增

從 CLI 新增使用者認證

在開始之前,請按照 CLI 文件 設定您的 API 端點。

若要使用 Secrets Manager CLI 外掛程式來儲存使用者名稱及密碼,請執行 ibmcloud secrets-manager secret-create 指令。

ibmcloud secrets-manager secret-create \
    --secret-name example-username-password-secret \
    --secret-description "Description of my user credentials secret" \
    --secret-type username_password \
    --secret-group-id bfc0a4a9-3d58-4fda-945b-76756af516aa \
    --secret-labels dev,us-south \
    --username-password-username example-username \
    --username-password-password example-password \
    --secret-rotation '{"auto_rotate": true, "interval": 10, "unit": "day"}' \
    --secret-custom-metadata '{"metadata_custom_key": "metadata_custom_value"}' \
    --secret-version-custom-metadata '{"custom_version_key": "custom_version_value"}'

從 CLI 產生隨機密碼

您可以選擇進一步自訂產生的密碼,方法是配置其長度 (12-256 個字元),以及是否包含數字、符號和大寫字母。 若要使用 Secrets Manager CLI 外掛程式產生隨機密碼,請執行 ibmcloud secrets-manager secret-create 指令並包括 password_generation_policy 欄位。

ibmcloud secrets-manager secret-create \
    --secret-name example-username-password-secret \
    --secret-description "Description of my user credentials secret" \
    --secret-type username_password \
    --secret-group-id bfc0a4a9-3d58-4fda-945b-76756af516aa \
    --secret-labels dev,us-south \
    --username-password-username example-username \
    --username-password-password example-password \
    --secret-rotation '{"auto_rotate": true, "interval": 10, "unit": "day"}' \
    --username-password-policy '{"length": 24, "include_digits": true, "include_symbols": false, "include_uppercase": true}' \
    --secret-custom-metadata '{"metadata_custom_key": "metadata_custom_value"}' \
    --secret-version-custom-metadata '{"custom_version_key": "custom_version_value"}'

指令會輸出密鑰的 ID 值,以及其他 meta 資料。 如需指令選項的相關資訊,請參閱 ibmcloud secrets-manager secret-create

使用 API 新增使用者認證

您可以透過呼叫 Secrets Manager API,以程式化方式儲存使用者名稱及密碼。

下列範例顯示可用來建立使用者名稱及密碼密鑰的查詢。 當您呼叫 API 時,請將 ID 變數及 IAM 記號取代為 Secrets Manager 實例特定的值。

您可以使用 custom_metadataversion_custom_metadata 要求參數來儲存與組織需求相關的 meta 資料。 僅針對密鑰版本傳回 version_custom_metadata 的值。 密鑰的自訂 meta 資料會儲存為最多 50 個版本的所有其他 meta 資料,而且您不得包含機密資料。

curl -X POST
    -H "Authorization: Bearer {IAM_token}" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -d '{
      "name": "example-username-password-secret",
      "description": "Description of my user credentials secret",
      "secret_type": "username_password",
      "secret_group_id": "bfc0a4a9-3d58-4fda-945b-76756af516aa",
      "labels": [
        "dev",
        "us-south"
      ],
      "username": "example-username",
      "password": "example-password",
      "rotation": {
        "auto_rotate": true,
        "interval": 10,
        "unit": "day"
      },
      "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"

使用 API 產生隨機密碼

您可以選擇進一步自訂產生的密碼,方法是配置其長度 (12-256 個字元),以及是否包含數字、符號和大寫字母。 呼叫 Secrets Manager API 時包括 password_generation_policy 欄位。

curl -X POST
    -H "Authorization: Bearer {IAM_token}" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -d '{
      "name": "example-username-password-secret",
      "description": "Description of my user credentials secret",
      "secret_type": "username_password",
      "secret_group_id": "bfc0a4a9-3d58-4fda-945b-76756af516aa",
      "labels": [
        "dev",
        "us-south"
      ],
      "username": "example-username",
      "password": "example-password",
      "rotation": {
        "auto_rotate": true,
        "interval": 10,
        "unit": "day"
      },
      "password_generation_policy": {
        "length": 24,
        "include_digits": true,
        "include_symbols": false,
        "include_uppercase": true
      },
      "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 配置中設定選用的 password 引數來提供密碼,或選擇產生隨機密碼。 如果您省略 password 引數,Secrets Manager 會產生 32 個字元的隨機密碼,其中包含大寫字母、小寫字母、數字及符號。 您可以選擇進一步自訂產生的密碼,方法是配置其長度 (12-256 個字元),以及是否包含數字、符號和大寫字母。

如果您使用自動輪換原則來配置密鑰,則建議省略 password 引數,以讓起始密碼也自動產生。 這是為了避免 Terraform 漂移的情況,即在自動輪換發生後,Terraform 偵測到密碼在 Terraform 外部被更改。

以下範例顯示您可以用來建立使用者名稱和密碼秘密的查詢,密碼是隨機產生的,並已啟用自動輪替功能。 本範例也顯示如何為秘密指定非預設密碼產生政策。

    resource "ibm_sm_username_password_secret" "test_username_password_secret" {
        instance_id = local.instance_id
        region = local.region
        secret_group_id = "default"
        name = "test-user-creds-secret"
        username = "sm_username"
        rotation {
            auto_rotate = true
            interval = 10
            unit = "day"
        }
        password_generation_policy {
            length = 24
            include_digits = true
            include_symbols = false
            include_uppercase = true
        }
    }

以下範例顯示了一個查詢,您可以使用該查詢使用 Terraform 配置中提供的密碼建立使用者名稱和密碼機密。 在此範例中已停用自動旋轉,但您可以透過修改配置中 password 引數的值來手動旋轉密碼。

    resource "ibm_sm_username_password_secret" "test_username_password_secret" {
        instance_id = local.instance_id
        region = local.region
        secret_group_id = "default"
        name = "test-user-creds-secret"
        username = "sm_username"
        password = "sm_password"
    }

使用適用於 Secrets Manager Secret 的 Terraform IBM Modules (TIM) 以宣告方式管理使用者名稱和密碼憑證。 探索 Terraform IBM 模組的 模式。

成功的回應會傳回秘密的 ID 值以及其他元資料。 如需必要及選用要求參數的相關資訊,請參閱 API 參考資料