사용자 인증 정보 저장

IBM Cloud® Secrets Manager을 사용하여 IBM Cloud의 내부 또는 외부에 있는 보호된 서비스에 로그인하고 액세스하는 데 사용할 수 있는 사용자 이름과 비밀번호를 저장할 수 있습니다.

사용자 인증 정보는 외부 서비스 또는 애플리케이션에 로그인하거나 액세스하는 데 사용할 수 있는 사용자 이름 및 비밀번호 값으로 구성됩니다. 시크릿은 전용 Secrets Manager 서비스 인스턴스에 안전하게 저장됩니다. 인스턴스에서 해당 라이프사이클을 중앙에서 관리하고 만기 날짜, 자동 순환 정책 등을 설정하여 시크릿의 수명을 제어할 수 있습니다.

사용자 자격 증명에서 비밀번호 값만 회전할 수 있습니다. 사용자 아이디 값은 한 번 설정하면 변경할 수 없습니다.

Secrets Manager에서 관리할 수 있는 시크릿 유형에 대한 자세한 정보는 시크릿의 개념을 참조하십시오.

시작하기 전에

시작하기 전에 필수 액세스 레벨이 있는지 확인하십시오. 시크릿을 작성하거나 추가하려면 작성자 서비스 역할 이상이 필요합니다.

UI에서 사용자 인증 정보 추가

Secrets Manager UI를 사용하여 사용자 이름과 비밀번호를 저장하려면 다음 단계를 완료하십시오.

  1. 콘솔에서 메뉴 아이콘 메뉴 아이콘 > 리소스 목록을 클릭하십시오.

  2. 서비스 목록에서 Secrets Manager의 인스턴스를 선택하십시오.

  3. 시크릿 표에서 추가를 클릭하십시오.

  4. 비밀 유형 목록에서 사용자 자격증명 타일을 선택합니다.

  5. 다음 을 클릭하십시오.

  6. 시크릿을 쉽게 식별할 수 있도록 이름 및 설명을 추가하십시오.

  7. 비밀에 할당할 비밀 그룹을인스턴스의 포함 시크릿이 준수해야 하는 환경 및 제한조건입니다. 액세스 및 협업을 사용하기 위해 사용자를 시크릿 그룹과 연관시킬 수 있습니다. 선택합니다.

    시크릿 그룹이 아직 없습니까? 시크릿 그룹 필드에서 작성을 클릭하여 새 그룹의 이름과 설명을 제공할 수 있습니다. 시크릿은 새 그룹에 자동으로 추가됩니다. 시크릿 그룹에 대한 자세한 정보는 시크릿 구성을 확인하십시오.

  8. 선택사항: 인스턴스에서 유사한 시크릿을 검색하는 데 도움이 되는 레이블을 추가하십시오.

  9. 선택사항: 시크릿 또는 시크릿의 특정 버전에 메타데이터를 추가하십시오.

    1. 파일을 업로드하거나 메타데이터 및 버전 메타데이터를 JSON 형식으로 입력하십시오.
  10. 다음 을 클릭하십시오.

  11. 시크릿과 연관시킬 사용자 이름 및 비밀번호를 입력하십시오.

비밀번호를 생성하도록 선택하면 Secrets Manager 에서 기존 값을 대문자, 소문자, 숫자 및 기호가 포함된 무작위로 생성된 32자 비밀번호로 대체합니다. 길이 (12-256자) 및 숫자, 기호 및 대문자를 포함할지 여부를 구성하여 생성된 비밀번호를 추가로 사용자 정의하도록 선택할 수 있습니다.

  1. 선택사항: 시크릿의 수명을 제어하려면 만기 및 순환 옵션을 사용하십시오.
  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 값을 출력합니다. 명령 옵션에 대한 자세한 정보는 ibmcloud secrets-manager secret-create의 내용을 참조하십시오.

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-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을 사용하여 사용자 인증 정보 추가

Secrets Manager에 대해 Terraform을 사용하여 프로그래밍 방식으로 사용자 이름 및 비밀번호를 저장할 수 있습니다.

Terraform 구성에서 선택적 password 인수를 설정하여 비밀번호를 제공하거나 무작위 비밀번호를 생성하도록 선택할 수 있습니다. password 인수를 생략하면 Secrets Manager 가 대문자, 소문자, 숫자 및 기호를 포함하는 32자의 무작위 비밀번호를 생성합니다. 길이 (12-256자) 및 숫자, 기호 및 대문자를 포함할지 여부를 구성하여 생성된 비밀번호를 추가로 사용자 정의하도록 선택할 수 있습니다.

자동 순환 정책으로 시크릿을 구성하는 경우 초기 비밀번호도 자동으로 생성되도록 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"
        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 비밀을 위한 Terraform IBM 모듈(TIM)로 사용자 이름과 비밀번호 자격 증명을 선언적으로 관리하세요. 패턴은 Terraform IBM 모듈 에서 확인하세요.

성공적 응답은 다른 메타데이터와 함께 시크릿의 ID 값을 리턴합니다. 필수 및 선택적 요청 매개변수에 대한 자세한 정보는 API 참조를 확인하십시오.