시크릿 액세스

IBM Cloud® Secrets Manager 서비스 인스턴스에 시크릿을 저장한 후 해당 값을 검색할 수 있습니다.

시작하기 전에

시작하기 전에 필수 액세스 레벨이 있는지 확인하십시오. 사용 가능한 시크릿 목록을 보려면 독자 서비스 역할 이상이 필요합니다. 시크릿 값을 검색하려면 SecretReader 서비스 역할 이상이 필요합니다.

UI에서 시크릿 검색

Secrets Manager UI를 사용하여 비밀을 검색할 수 있습니다. 시크릿을 가져오려면 다음 단계를 수행하십시오.

  1. 시크릿 테이블에서 조치 메뉴 조치 아이콘를 클릭하여 시크릿에 대한 옵션 목록을 여십시오.
  2. 시크릿 값을 보려면 시크릿 보기를 클릭하십시오.
  3. 안전한 환경에 있는지 확인한 후 확인 을 클릭하십시오.

시크릿 값이 15초동안 표시되면 대화 상자가 닫힙니다.

비밀번호가 회전된 후에는 버전 기록 옵션에서 이전 비밀번호 값을 볼 수 있습니다.

만료일, 회전 간격 또는 상태와 같은 비밀의 세부 정보도 검색할 수 있습니다.

  1. 시크릿 테이블에서 조치 메뉴 조치 아이콘를 클릭하여 시크릿에 대한 옵션 목록을 여십시오.
  2. 시크릿 값을 보려면 세부사항을 클릭하십시오.

비밀 테이블의 필터 옵션에서 검색된 비밀을 추가로 필터링하고 비밀 그룹, 비밀 유형 또는 둘 다를 선택할 수 있습니다.

인증서 다운로드

Secrets Manager UI를 사용하여 인증서를 다운로드하려면 다음 단계를 완료하십시오.

  1. 콘솔에서 메뉴 아이콘 메뉴 아이콘 > 리소스 목록을 클릭하십시오.
  2. 서비스 목록에서 Secrets Manager의 인스턴스를 선택하십시오.
  3. 시크릿 표에서 다운로드하려는 인증서에 대한 오버플로우 메뉴를 여십시오.
  4. 다운로드를 클릭하십시오. 인증서 파일이 로컬 시스템에 다운로드됩니다.

CLI에서 시크릿 검색

인스턴스에 시크릿을 저장한 후에는 외부 앱에 연결하거나 보호된 서비스에 액세스할 수 있도록 해당 값을 검색해야 합니다. Secrets Manager CLI 플러그인을 사용하여 시크릿 값을 검색할 수 있습니다.

시크릿의 값을 가져오고 만기 날짜 및 순환 간격 또는 상태와 같은 세부사항을 검토하려면 ibmcloud secrets-manager secret 명령을 실행하십시오.

ibmcloud secrets-manager secret --id SECRET_ID

이 명령은 시크릿 값을 다른 메타데이터와 함께 출력합니다. 명령 옵션에 대한 자세한 정보는 ibmcloud secrets-manager secret의 내용을 참조하십시오.

해당 이름을 사용하여 시크릿을 가져올 수도 있습니다.

ibmcloud secrets-manager secret-by-name --secret-type SECRET_TYPE --name SECRET_NAME --secret-group-name SECRET_GROUP_NAME

--secret-types--match-all-labels 선택적 플래그를 사용하여 검색된 시크릿을 추가로 필터링할 수 있습니다.

인증서 다운로드

인증서에 대해 작업하는 경우, CLI를 사용하여 인증서의 페이로드를 pem 파일에 다운로드하는 기능이 필요할 수 있습니다. 이를 수행하기 위해 Secrets Manager CLI 플러그인 및 jq을(를) 사용할 수 있습니다.

인증서를 pem 파일에 저장하려면 ibmcloud secrets-manager secret 명령을 실행하십시오.

ibmcloud secrets-manager secret --id=SECRET_ID | jq -r '.certificate' | sed 's/\\n/\n/g' > my-cert-file.pem

이 명령은 인증서의 값을 출력하여 my-cert-file.pem에 저장합니다. 명령 옵션에 대한 자세한 정보는 ibmcloud secrets-manager secret을 참조하십시오.

시크릿 ID를 사용하여 API로 시크릿 검색

인스턴스에 시크릿을 저장한 후에는 외부 앱에 연결하거나 보호된 서비스에 액세스할 수 있도록 해당 값을 검색해야 합니다. Secrets Manager API를 사용하여 시크릿 값을 검색할 수 있습니다.

다음 예제 요청은 시크릿 및 해당 세부사항 (예: 만료 날짜 및 순환 간격 또는 상태) 을 검색합니다. API를 호출할 때 ID 변수와 IAM 토큰을 Secrets Manager 인스턴스에 고유한 값으로 바꾸십시오.

curl -X GET
    -H "Authorization: Bearer {iam_token}" \
    -H "Accept: application/json" \
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets/{secret_ID}"

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

?secret_types?match_all_labels 선택적 매개변수를 사용하여 검색된 시크릿을 추가로 필터링할 수 있습니다.

시크릿 이름을 사용하여 API로 시크릿 검색

ID 대신 이름을 참조하여 시크릿의 값을 검색할 수도 있습니다.

curl -X GET
    -H "Authorization: Bearer {iam_token}" \
    -H "Accept: application/json" \
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secret_groups/{secret_group_name}/secret_types/{secret_type}/secrets/{secert_name}"

시크릿의 name, secret group namesecret_type 를 지정해야 합니다.

?secret_types?match_all_labels 선택적 매개변수를 사용하여 검색된 시크릿을 추가로 필터링할 수 있습니다.

2진 데이터가 포함된 임의의 시크릿 검색

이미지와 같은 2진 파일을 사용하여 임의의 시크릿을 작성한 경우, 서비스는 base64 인코딩을 사용하여 데이터를 base64 인코딩 문자열로 저장합니다. 원래 형식의 비밀번호에 액세스하려면 몇 가지 추가 단계를 완료하여 base64 검색된 비밀번호를 디코딩해야 합니다.

먼저, Secrets Manager API를 호출하여 시크릿을 검색하십시오. 다음 예에서는 cURL및 jq을(를) 사용하여 시크릿의 payload 값을 수집합니다.

export ARBITRARY_SECRET=`curl -X GET  
    -H "Authorization: Bearer $IAM_TOKEN" \
    -H "Accept: application/json"
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets/arbitrary/{id}" | jq --raw-output '.payload | sub(".*,"; "")'`

$ARBITRARY_SECRET의 컨텐츠를 검사하는 경우 base64 인코딩된 데이터가 표시됩니다. 다음 스니펫은 예제 출력을 보여줍니다.

echo $ARBITRARY_SECRET
eUdB68klDSrzSKgWcQS5...(truncated)

원래 양식(2진 파일)으로 시크릿을 보려면 base64 디코딩을 사용할 수 있습니다. 다음 예에서는 base64 macOS 유틸리티를 사용하여 $ARBITRARY_SECRET 컨텐츠를 base64로 디코딩합니다.

echo $ARBITRARY_SECRET | base64 --decode > my-secret.png

데이터는 로컬 컴퓨터에서 열 수 있는 2진 파일로 다시 변환됩니다.

인증서의 이전 버전 다운로드하기

인증서를 순환한 후에는 Secrets Manager API를 사용하여 프로그래밍 방식으로 이전 버전에 액세스할 수 있습니다.

다음 예제 요청은 시크릿 및 해당 컨텐츠를 검색합니다. API를 호출할 때 ID 변수와 IAM 토큰을 Secrets Manager 인스턴스에 고유한 값으로 바꾸십시오.

curl -X GET  
   --header "Authorization: Bearer {iam_token}" \
   --header "Accept: application/json" \
   "https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets/{id}/versions/previous"