키-값 시크릿 저장
IBM Cloud® Secrets Manager을(를) 사용하여 IBM Cloud 내부 또는 외부에 있는 보호된 시스템에 액세스하는 데 사용되는, 복합 JSON 문서를 비롯한 키-값 시크릿을 저장하고 관리할 수 있습니다.
키-값 시크릿은 JSON 오브젝트로 구조화된 민감한 데이터를 보유하는 데 사용할 수 있는 애플리케이션 시크릿의 유형입니다. 시크릿을 작성한 후에는 이를 사용하여 애플리케이션을 데이터베이스 또는 써드파티 앱과 같은 보호 자원에 연결할 수 있습니다. 시크릿은 전용 Secrets Manager 서비스 인스턴스에 안전하게 저장되며, 라이프사이클을 중앙 집중식으로 관리할 수 있습니다.
키마다 여러 개의 버전을 저장할 수 있으며 Secrets Manager를 사용하여 키-값 시크릿의 히스토리 및 메타데이터에 액세스할 수 있습니다. 자세한 정보는 저장소를 사용하여 키-값 시크릿 관리 를 참조하십시오.
Secrets Manager에서 관리할 수 있는 시크릿 유형에 대한 자세한 정보는 시크릿의 개념을 참조하십시오.
시작하기 전에
시작하기 전에 필수 액세스 레벨이 있는지 확인하십시오. 시크릿을 작성하거나 추가하려면 작성자 서비스 역할 이상이 필요합니다.
UI에서 키-값 시크릿 작성
Secrets Manager UI를 사용하여 키-값 시크릿을 추가하려면 다음 단계를 완료하십시오.
-
IBM Cloud 콘솔에서 메뉴 아이콘
> 리소스 목록을 클릭하십시오.
-
서비스 목록에서 Secrets Manager의 인스턴스를 선택하십시오.
-
시크릿 테이블에서 추가를 클릭하십시오.
-
비밀 유형 목록에서 키-값 타일을 선택합니다.
-
다음 을 클릭하십시오.
-
시크릿을 쉽게 식별할 수 있도록 이름 및 설명을 추가하십시오.
-
비밀에 할당할 비밀 그룹을인스턴스의 포함 시크릿이 준수해야 하는 환경 및 제한조건입니다. 액세스 및 협업을 사용하기 위해 사용자를 시크릿 그룹과 연관시킬 수 있습니다. 선택합니다.
시크릿 그룹이 아직 없습니까? 시크릿 그룹 필드에서 작성을 클릭하여 새 그룹의 이름과 설명을 제공할 수 있습니다. 시크릿은 새 그룹에 자동으로 추가됩니다. 시크릿 그룹에 대한 자세한 정보는 시크릿 구성을 확인하십시오.
-
선택사항: 인스턴스에서 유사한 시크릿을 검색하는 데 도움이 되는 레이블을 추가하십시오.
-
선택사항: 시크릿 또는 시크릿의 특정 버전에 메타데이터를 추가하십시오.
- 파일을 업로드하거나 메타데이터 및 버전 메타데이터를 JSON 형식으로 입력하십시오.
-
다음 을 클릭하십시오.
-
파일을 선택하거나 시크릿과 연관시킬 시크릿 값을 입력하십시오.
키-값 데이터를 JSON 오브젝트로 입력해야 합니다. 최대 파일 크기는 512KB입니다.
- 다음 을 클릭하십시오.
- 시크릿의 세부사항을 검토하십시오.
- 추가 를 클릭하십시오.
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_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-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 파일에서 민감한 값을 설정하여 키-값 시크릿을 작성하는 데 사용할 수 있는 구성을 보여줍니다.
variables.tf파일에서 키-값 시크릿 데이터에 대한 입력 변수를 정의하십시오.
variable "kv_secret_data" {
description = "KV secret data"
type = map(any)
sensitive = true
}
-
terraform.tfvars파일의kv_secret_data변수에 값을 지정하십시오..tfvars파일을 사용하여 값을 설정하면 나머지 변수값에서 민감한 값을 분리할 수 있으며 구성에 대해 작업하는 사용자가 민감한 값을 알고 있는지 확인할 수 있습니다. 보안을 위해 적절한 액세스 권한이 있는 사용자만.tfvars파일을 유지보수하고 공유해야 합니다. 또한 민감한 값이 있는.tfvars파일을 버전 제어 (예: Github) 에 일반 텍스트로 저장하지 않도록 주의해야 합니다.kv_secret_data = { "key1" : "value1" } -
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 모듈에서 확인하세요.