키-값 시크릿 저장

IBM Cloud® Secrets Manager을(를) 사용하여 IBM Cloud 내부 또는 외부에 있는 보호된 시스템에 액세스하는 데 사용되는, 복합 JSON 문서를 비롯한 키-값 시크릿을 저장하고 관리할 수 있습니다.

키-값 시크릿은 JSON 오브젝트로 구조화된 민감한 데이터를 보유하는 데 사용할 수 있는 애플리케이션 시크릿의 유형입니다. 시크릿을 작성한 후에는 이를 사용하여 애플리케이션을 데이터베이스 또는 써드파티 앱과 같은 보호 자원에 연결할 수 있습니다. 시크릿은 전용 Secrets Manager 서비스 인스턴스에 안전하게 저장되며, 라이프사이클을 중앙 집중식으로 관리할 수 있습니다.

키마다 여러 개의 버전을 저장할 수 있으며 Secrets Manager를 사용하여 키-값 시크릿의 히스토리 및 메타데이터에 액세스할 수 있습니다. 자세한 정보는 저장소를 사용하여 키-값 시크릿 관리 를 참조하십시오.

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

시작하기 전에

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

UI에서 키-값 시크릿 작성

Secrets Manager UI를 사용하여 키-값 시크릿을 추가하려면 다음 단계를 완료하십시오.

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

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

  3. 시크릿 테이블에서 추가를 클릭하십시오.

  4. 비밀 유형 목록에서 키-값 타일을 선택합니다.

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

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

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

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

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

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

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

  11. 파일을 선택하거나 시크릿과 연관시킬 시크릿 값을 입력하십시오.

키-값 데이터를 JSON 오브젝트로 입력해야 합니다. 최대 파일 크기는 512KB입니다.

  1. 다음 을 클릭하십시오.
  2. 시크릿의 세부사항을 검토하십시오.
  3. 추가 를 클릭하십시오.

CLI에서 키-값 시크릿 작성

Secrets Manager CLI 플러그인을 사용하여 키-값 시크릿을 작성하려면 ibmcloud secrets-manager secret-create 명령을 실행하십시오. 예를 들어, 다음 명령은 키-값 비밀을 생성하고 {"key1":"value1"} 을 값으로 저장합니다.

ibmcloud secrets-manager secret-create \
  --secret-name="example-kv-secret" \
  --secret-description="Description of my key-value secret." \
  --secret-type="kv" \
  --secret-group-id="67d025e1-0248-418f-83ba-deb0ebfb9b4a" \
  --secret-labels='["dev","us-south"]' \
  --kv-data='{"key1": "val1","key2": "val2"}' \
  --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-kv-secret",
          "description": "Description of my kv secret.",
          "secret_type": "kv",
          "secret_group_id": "67d025e1-0248-418f-83ba-deb0ebfb9b4a",
          "labels": [
            "dev",
            "us-south"
          ],
          "data": {
            "key1": "val1",
            "key2": "val2"
          },
          "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"

성공적 응답은 다른 메타데이터와 함께 시크릿의 ID 값을 리턴합니다. 필수 및 선택적 요청 매개변수에 대한 자세한 내용은 비밀 만들기를 참조하세요.

Terraform을 사용하여 키-값 시크릿 작성

Secrets Manager에 대해 Terraform을 사용하여 프로그래밍 방식으로 키-값 시크릿을 작성할 수 있습니다.

시크릿 신임 정보와 같은 민감한 입력 변수를 보호하기 위한 Terraform 우수 사례를 따르십시오. 자세한 정보는 민감한 입력 변수 보호 를 참조하십시오.

다음 예제는 terraform.tfvars 파일에서 민감한 값을 설정하여 키-값 시크릿을 작성하는 데 사용할 수 있는 구성을 보여줍니다.

  1. variables.tf 파일에서 키-값 시크릿 데이터에 대한 입력 변수를 정의하십시오.
    variable "kv_secret_data" {
        description = "KV secret data"
        type        = map(any)
        sensitive   = true
    }
  1. terraform.tfvars 파일의 kv_secret_data 변수에 값을 지정하십시오.

    .tfvars 파일을 사용하여 값을 설정하면 나머지 변수값에서 민감한 값을 분리할 수 있으며 구성에 대해 작업하는 사용자가 민감한 값을 알고 있는지 확인할 수 있습니다. 보안을 위해 적절한 액세스 권한이 있는 사용자만 .tfvars 파일을 유지보수하고 공유해야 합니다. 또한 민감한 값이 있는 .tfvars 파일을 버전 제어 (예: Github) 에 일반 텍스트로 저장하지 않도록 주의해야 합니다.

    kv_secret_data = {
        "key1" : "value1"
    }
    
  2. main.tf 파일에서 키-값 시크릿을 작성하십시오.

다음 예는 키-값 비밀을 만드는 데 사용할 수 있는 구성을 보여줍니다.

    resource "ibm_sm_kv_secret" "sm_kv_secret"{
        instance_id = local.instance_id
        region = local.region
        name = "kv-secret-example"
        description = "Extended description for this key-value secret."
        labels = ["my-label"]
        secret_group_id = ibm_sm_secret_group.sm_secret_group_test.secret_group_id
        data = var.kv_secret_data
    }

Secrets Manager 비밀을 위한 Terraform IBM 모듈(TIM)을 사용하여 키-값 쌍을 프로그래밍 방식으로 저장하고 관리합니다. 자세한 내용은 Terraform IBM 모듈에서 확인하세요.