임의의 시크릿 저장
IBM Cloud® Secrets Manager를 사용하여 IBM Cloud 내부 또는 외부에 있는 보호 시스템에 액세스하는 데 사용되는 임의 시크릿을 저장할 수 있습니다.
임의의 시크릿은 키, 구성 파일 또는 기타 민감한 정보와 같이 구조화되거나 구조화되지 않은 데이터를 보유하는 데 사용할 수 있는 애플리케이션 시크릿의 한 유형입니다. 시크릿을 작성한 후에는 이를 사용하여 서드파티 앱 또는 데이터베이스와 같은 보호 리소스에 애플리케이션을 연결할 수 있습니다. 시크릿은 전용 Secrets Manager 서비스 인스턴스에 안전하게 저장되며, 라이프사이클을 중앙 집중식으로 관리할 수 있습니다.
Secrets Manager에서 관리할 수 있는 시크릿 유형에 대한 자세한 정보는 시크릿의 개념을 참조하십시오.
시작하기 전에
시작하기 전에 필수 액세스 레벨이 있는지 확인하십시오. 시크릿을 작성하거나 추가하려면 작성자 서비스 역할 이상이 필요합니다.
UI에서 임의 시크릿 작성
Secrets Manager UI를 사용하여 임의 시크릿을 추가하려면 다음 단계를 완료하십시오.
-
콘솔에서 메뉴 아이콘
> 리소스 목록을 클릭하십시오.
-
서비스 목록에서 Secrets Manager의 인스턴스를 선택하십시오.
-
시크릿 표에서 추가를 클릭하십시오.
-
시크릿 유형 목록에서 기타 시크릿 유형 타일을 클릭하십시오.
-
다음 을 클릭하십시오.
-
시크릿을 쉽게 식별할 수 있도록 이름 및 설명을 추가하십시오.
-
비밀에 할당할 비밀 그룹을인스턴스의 포함 시크릿이 준수해야 하는 환경 및 제한조건입니다. 액세스 및 협업을 사용하기 위해 사용자를 시크릿 그룹과 연관시킬 수 있습니다. 선택합니다.
시크릿 그룹이 아직 없습니까? 시크릿 그룹 필드에서 작성을 클릭하여 새 그룹의 이름과 설명을 제공할 수 있습니다. 시크릿은 새 그룹에 자동으로 추가됩니다. 시크릿 그룹에 대한 자세한 정보는 시크릿 구성을 확인하십시오.
-
선택사항: 인스턴스에서 유사한 시크릿을 검색하는 데 도움이 되는 레이블을 추가하십시오.
-
선택사항: 시크릿 또는 시크릿의 특정 버전에 메타데이터를 추가하십시오.
- 파일을 업로드하거나 메타데이터 및 버전 메타데이터를 JSON 형식으로 입력하십시오.
-
다음 을 클릭하십시오.
-
파일을 선택하거나 시크릿과 연관시킬 시크릿 값을 입력하십시오.
Secrets Manager에서는 임의 시크릿에 대해서만 텍스트 기반 페이로드를 지원합니다. 임의의 시크릿에 지정할 파일을 선택하는 경우, 서비스는 base64 인코딩을 사용하여 인스턴스에 데이터를 저장합니다. 나중에 이 시크릿에 액세스하려면 base64로 디코딩해야 합니다. base64 디코딩이 필요한 비밀을 추적할 수 있도록 encode:base64 과 같이 인코딩된 데이터로 비밀에 레이블을 지정하는
것이 좋습니다.
- 선택 사항입니다: 만료를 활성화하여 비밀의 수명을 제어합니다.
- 시크릿의 만기 날짜를 설정하려면 만기 전환을 예로 전환하십시오.
- 다음 을 클릭하십시오.
- 시크릿의 세부사항을 검토하십시오.
- 추가 를 클릭하십시오.
CLI에서 임의 시크릿 작성
시작하기 전에 CLI 문서에 따라 API 엔드포인트를 설정하세요.
Secrets Manager CLI 플러그인을 사용하여 임의 시크릿을 작성하려면 ibmcloud secrets-manager secret-create 명령을 실행하십시오.
--secret-type arbitrary 옵션을 사용하여 시크릿의 유형을 지정할 수 있습니다. 예를 들어 다음 명령은 임의의 시크릿을 작성하고 secret-data를 해당 값으로 저장합니다.
Secrets Manager에서는 임의 시크릿에 대해서만 텍스트 기반 페이로드를 지원합니다. 2진 파일을 업로드해야 하는 경우 단일행 문자열의 Secrets Manager CLI로 전달할 수 있도록 데이터를 먼저 base64로 인코딩해야 합니다. 이 시크릿을 나중에 원래 양식으로 액세스하려면 이 비밀번호를 base64로 디코딩해야 합니다. base64 디코딩이 필요한 비밀을 추적할 수 있도록 encode:base64 과 같이 인코딩된 데이터로 비밀에 레이블을 지정하는 것이 좋습니다.
ibmcloud secrets-manager secret-create \
--secret-name example-arbitrary-secret \
--secret-description "Description of my arbitrary secret." \
--secret-type arbitrary \
--secret-group-id default \
--secret-labels dev,us-south \
--secret-expiration-date 2023-10-05T11:49:42Z \
--arbitrary-payload secret-data \
--secret-custom-metadata '{"anyKey": "anyValue"}' \
--secret-version-custom-metadata '{"anyKey": "anyValue"}'
명령은 다른 메타데이터와 함께 시크릿의 ID 값을 출력합니다. 명령 옵션에 대한 자세한 정보는 ibmcloud secrets-manager secret-create의
내용을 참조하십시오.
API를 사용하여 임의의 시크릿 작성
Secrets Manager API를 호출하여 임의 시크릿을 프로그래밍 방식으로 작성할 수 있습니다.
다음 예에서는 임의의 시크릿을 작성하고 저장하는 데 사용할 수 있는 조회를 보여줍니다. API를 호출할 때 ID 변수와 IAM 토큰을 Secrets Manager 인스턴스에 고유한 값으로 바꾸십시오.
custom_metadata 및 version_custom_metadata 요청 매개변수를 사용하여 조직의 요구사항과 관련된 메타데이터를 저장할 수 있습니다. version_custom_metadata 의 값은 시크릿 버전에 대해서만 리턴됩니다. 시크릿의 사용자 정의 메타데이터는 최대 50개의 버전에 대해 다른 모든 메타데이터로 저장되며 기밀 데이터를 포함하지
않아야 합니다.
Secrets Manager에서는 임의 시크릿에 대해서만 텍스트 기반 페이로드를 지원합니다. 2진 파일을 업로드해야 하는 경우 단일행 문자열의 Secrets Manager API로 전달할 수 있도록 데이터를 먼저 base64로 인코딩해야 합니다. 이 시크릿을 나중에 원래 양식으로 액세스하려면 이 비밀번호를 base64로 디코딩해야 합니다. base64 디코딩이 필요한 비밀을 추적할 수 있도록 encode:base64 과 같이 인코딩된 데이터로 비밀에 레이블을 지정하는 것이 좋습니다.
curl -X POST
-H "Authorization: Bearer {iam_token}" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"custom_metadata": {
"metadata_custom_key": "metadata_custom_value"
},
"description": "Description of my arbitrary secret.",
"expiration_date": "2023-10-05T11:49:42Z",
"labels": [
"dev",
"us-south"
],
"name": "example-arbitrary-secret",
"payload": "secret-data",
"secret_group_id": "67d025e1-0248-418f-83ba-deb0ebfb9b4a",
"secret_type": "arbitrary",
"version_custom_metadata": {
"custom_version_key": "custom_version_value"} }' \
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets"
성공적 응답은 다른 메타데이터와 함께 시크릿의 ID 값을 리턴합니다. 필수 및 선택적 요청 매개변수에 대한 자세한 정보는 API 참조를 확인하십시오.
Terraform을 사용하여 임의의 시크릿 작성
Secrets Manager에 대해 Terraform을 사용하여 프로그래밍 방식으로 임의의 시크릿을 작성할 수 있습니다.
시크릿 신임 정보와 같은 민감한 입력 변수를 보호하기 위한 Terraform 우수 사례를 따르십시오. 자세한 정보는 민감한 입력 변수 보호 를 참조하십시오.
다음 예제는 terraform.tfvars 파일에서 민감한 값을 설정하여 임의의 시크릿을 작성하는 데 사용할 수 있는 구성을 보여줍니다.
-
variables.tf파일에서 임의의 시크릿 페이로드에 대한 입력 변수를 정의하십시오.variable "arbitrary_secret_payload" { description = "Arbitrary secret payload" type = string sensitive = true } -
terraform.tfvars파일의arbitrary_secret_payload변수에 값을 지정하십시오..tfvars파일을 사용하여 값을 설정하면 나머지 변수값에서 민감한 값을 분리할 수 있으며 구성에 대해 작업하는 사용자가 민감한 값을 알고 있는지 확인할 수 있습니다. 보안을 위해 적절한 액세스 권한이 있는 사용자만.tfvars파일을 유지보수하고 공유해야 합니다. 또한 민감한 값이 있는.tfvars파일을 버전 제어 (예: Github) 에 일반 텍스트로 저장하지 않도록 주의해야 합니다.arbitrary_secret_payload = "my sensitive arbitrary payload" -
main.tf파일에서 임의의 시크릿을 작성하십시오.resource "ibm_sm_arbitrary_secret" "sm_arbitrary_secret" { instance_id = local.instance_id region = local.region description = "Extended description for this arbitrary secret" labels = [ "tf-resource"] name = "test-arbitrary-secret" secret_group_id = ibm_sm_secret_group.sm_secret_group_test.secret_group_id payload = var.arbitrary_secret_payload }
또는 사전 구축된 오픈 소스 및 엔터프라이즈용 테라폼 IBM 모듈(TIM)을 사용하여 Secrets Manager 시 크릿을 사용하여 테라폼으로 임의의 시크릿을 만들 수 있습니다. Terraform IBM 모듈에 대해 자세히 알아보세요.