저장소 CLI 설정하기

HashiCorp Vault 명령행 인터페이스(CLI)를 이미 사용 중인 경우 CLI 형식 및 지침을 사용하여 IBM Cloud® Secrets Manager과 상호작용할 수 있습니다.

모든 오퍼레이션은 Vault CLI에서 사용 가능한 가이드라인을 따릅니다. Vault CLI 사용에 대해 자세히 알아보려면 Vault 설명서를 확인하세요.

전제조건

  • Vault CLI를 다운로드하여 설치합니다.

  • IBM Cloud API 키를 작성하거나 IBM Cloud IAM 액세스 토큰을 생성하십시오.

    계정 인증 정보를 제공하여 Vault에서 사용자가 누구이며 Secrets Manager 인스턴스에 대해 특정 Vault 명령을 실행할 수 있는 올바른 레벨의 액세스 권한이 있는지 파악할 수 있습니다.

  • 선택 사항입니다: 다운로드 및 설치 jq.

    jq을(를) 사용하면 JSON 데이터를 분할할 수 있습니다. 이 학습서에서는 jq을(를) 사용하여 IAM ID 서비스 API를 호출할 때 리턴된 액세스 토큰을 확보하고 사용합니다.

환경 설정

먼저 Vault를 사용하여 Secrets Manager 서비스 인스턴스에 액세스하도록 환경을 설정하십시오. 먼저 Vault 인증에 필요한 자격 증명을 설정하는 셸 스크립트를 만드는 것부터 시작하세요.

  1. 프로젝트 디렉토리에서 login-vault.sh 파일을 작성하십시오.

    touch login-vault.sh
    
  2. 다음 스크립트를 복사하여 login-vault.sh에 붙여넣고 플레이스홀더 값을 업데이트하십시오.

    #!/bin/sh
    
    IBM_CLOUD_API_KEY="xxxxx"
    
    export VAULT_ADDR="https://<instance_ID>.<region>.secrets-manager.appdomain.cloud"
    
    export IAM_TOKEN=`curl -s -X POST \
    "https://iam.cloud.ibm.com/identity/token" \
    -H "Content-Type: application/x-www-form-urlencoded" \
    -H "Accept: application/json" \
    -d "grant_type=urn%3Aibm%3Aparams%3Aoauth%3Agrant-type%3Aapikey&apikey=$IBM_CLOUD_API_KEY" | jq -j ".access_token"`
    

    다음 표에 따라 플레이스홀더 값을 바꾸십시오.

    토큰 추출에 필요한 필수 변수
    가변 설명
    IBM_CLOUD_API_KEY Secrets Manager 인스턴스에 대한 뷰어 플랫폼 액세스 권한독자 서비스 액세스 권한 이상이 있는 IBM Cloud API 키입니다.
    VAULT_ADDR Secrets Manager 인스턴스에 고유한 Vault API 엔드포인트입니다.

    고유 엔드포인트 URL은 Secrets Manager UI의 엔드포인트 페이지에서 또는 HTTP 요청으로 검색하여 찾을 수 있습니다.

  3. 명령행에서 chmod 명령을 실행하여 파일을 실행 파일로 표시하십시오.

    chmod +x login-vault.sh
    
  4. 스크립트를 실행하여 환경 변수를 설정하십시오.

    source ./login-vault.sh
    
  5. 선택사항입니다. 명령행 창에 환경 변수를 인쇄하여 이 환경 변수가 올바르게 설정되었는지 확인하십시오.

    echo $VAULT_ADDR && echo $IAM_TOKEN
    

    출력은 다음 예와 유사할 수 있습니다.

    https://e415e570-f073-423a-abdc-55de9b58f54e.us-south.secrets-manager.appdomain.cloud
    eyJraWQiOiIyMDIwMTAxODE3MDEiLCJhbGciOiJSUzI1NiJ9.eyJpYW1faWQi...(truncated)
    

Vault에 로그인

환경을 구성한 후에 Vault에 로그인하여 Secrets Manager 인스턴스와의 상호작용을 시작하십시오.

  1. IBM Cloud IAM 토큰을 사용하여 Vault에 인증하십시오.

    vault write auth/ibmcloud/login token=$IAM_TOKEN
    

    다음 화면은 예제 출력을 보여줍니다.

    Key                      Value
    ---                      -----
    token                    s.5DQYF57xU1qOAIj2PhnMC39H
    token_accessor           C14JDJ6KtwQKQR5UNR5NIC7J
    token_duration           1h
    token_renewable          true
    token_policies           ["default" "instance-manager"]
    identity_policies        []
    policies                 ["default" "instance-manager"]
    token_meta_grant_type    urn:ibm:params:oauth:grant-type:apikey
    token_meta_name          test-ibm-cloud-api-key
    token_meta_resource      crn:v1:bluemix:public:secrets-manager:us-south:a/791f5fb10986423e97aa8512f18b7e65:e415e570-f073-423a-abdc-55de9b58f54e::
    token_meta_user          iam-ServiceId-222b47ab-b08e-4619-b68f-8014a2c3acb8
    token_meta_bss_acc       791f5fb10986423e97aa8512f18b7e65
    
  2. 이전 단계에서 리턴된 token 값을 사용하여 Vault에 로그인하십시오.

    vault login <token>
    

    다음 화면은 예제 출력을 보여줍니다.

    Success! You are now authenticated. The token information displayed is
    already stored in the token helper. You do NOT need to run "vault login"
    again. Future Vault requests will automatically use this token.
    
    Key                      Value
    ---                      -----
    token                    s.6yFk0Z1IRi0Yc5DtwIKuENDJ
    token_accessor           BnEHQuAxTiHJGhP1x0hNqagV
    token_duration           57m58s
    token_renewable          true
    token_policies           ["default" "instance-manager"]
    identity_policies        []
    policies                 ["default" "instance-manager"]
    token_meta_grant_type    urn:ibm:params:oauth:grant-type:apikey
    token_meta_name          test-ibm-cloud-api-key
    token_meta_resource      crn:v1:bluemix:public:secrets-manager:us-south:a/791f5fb10986423e97aa8512f18b7e65:e415e570-f073-423a-abdc-55de9b58f54e::
    token_meta_user          iam-ServiceId-222b47ab-b08e-4619-b68f-8014a2c3acb8
    token_meta_bss_acc       791f5fb10986423e97aa8512f18b7e65
    

    이제 Vault CLI 명령을 사용하여 Secrets Manager 인스턴스와 상호작용할 수 있습니다. 자세한 내용을 확인하려면 CLI 참조를 확인하십시오.