Gitlab CI에서 외부 비밀에 액세스

3861 단어 securitygodocker
Vault by HashiCorp , AWS 또는 다른 대형 클라우드 공급자와 같은 보안 위치에서 기존 자격 증명에 액세스하려고 하지만 현재 CI 이미지에 필요한 SDK가 설치되어 있지 않거나 이를 검색할 수단이 없는 경우가 있습니다. Gitlab 변수로 두 번째로 유지하거나 이전 작업에서 액세스해서는 안 되며 여러 가지 이유로 안전하지 않은 것으로 간주됩니다. 그래서 Gin Vals을 만들었습니다. Gin Vals를 서비스로 실행하고 서비스에 웹 요청을 하면 됩니다.

개념



이름에서 알 수 있듯이 Gin Vals는 간단한 GO 종속성과 결합하여 대부분의 공급자를 위한 슬림하고 쉬운 솔루션을 만듭니다.
Vals by Variantdev은 주요 클라우드 공급자 및 기타 기술에 대한 구성 값 및 비밀을 관리하기 위한 도구입니다.
이제 GinWeb Framework을 사용하여 REST를 통해 액세스할 수 있도록 만들기만 하면 됩니다.

용법



구성 및 비밀 도구로 Vals를 사용하고 있으므로 간단하게 documentation을 참조할 수 있습니다.
  • 금고: ref+vault://PATH/TO/KVBACKEND[?address=VAULT_ADDR:PORT&token_file=PATH/TO/FILE&token_env=VAULT_TOKEN]#/fieldkey
  • AWS 비밀 관리자: ref+awssecrets://PATH/TO/SECRET[?region=REGION&version_stage=STAGE&version_id=ID]
  • GCP 비밀 관리자: ref+gcpsecrets://PROJECT/SECRET[?version=VERSION]
  • 및 기타...

  • 간단한echo 방법을 사용하여 Gin Vals를 사용할 수 있는 몇 가지 방법을 표시하겠습니다.

    단순 단일 값 GET 요청



    가장 쉬운 방법은 GET을 통해 하나의 비밀을 검색하는 것입니다. Vals 문자열을 경로로 추가하면 비밀 값을 변수로 가져올 수 있어야 합니다.

    test:
      image: bitnami/bitnami-shell:latest
      services:
        - name: patrickdomnick/gin-vals:latest
          alias: ginvals
      script:
        - export secret=$(curl -X GET "http://ginvals:9090/ref+echo://foo/bar")
        - echo secret
    


    단순 단일 값 POST 요청



    고급 방법은 json 개체로 한 번에 많은 비밀을 검색하는 것입니다. 여기에서 사용 중인 기본 이미지에 따라 jq와 같은 도구로 데이터를 구문 분석할 수 있습니다.

    test:
      image: bitnami/bitnami-shell:latest
      services:
        - name: patrickdomnick/gin-vals:latest
          alias: ginvals
      script:
        - export secretJson=$(curl -H 'Content-Type: application/json' -d '{"foo": "ref+echo://foo/bar","bar": "ref+echo://bar/foo"}' -X POST "http://ginvals:9090")
    

    좋은 웹페이지 즐겨찾기