1단계: 서비스 계정 IaC 템플릿 다운로드 (API)

클라우드 환경을 생성하기 전에, Google 프로젝트의 리소스 구성을 스캔할 수 있는 Snyk 권한을 부여하는 범위가 엄격하게 지정된 Google 서비스 계정을 선언하는 코드형 인프라(IaC) 템플릿을 다운로드해야 합니다.

이 템플릿은 Google Cloud 프로젝트에 대한 Google 서비스 APIarrow-up-right 세트도 활성화합니다. 이를 통해 Snyk은 프로젝트의 리소스를 스캔하는 데 필요한 API를 사용할 수 있습니다.

이 IaC 템플릿을 사용하여 2단계: Google 서비스 계정 생성 (API)에서 역할을 프로비저닝합니다.

IaC 템플릿 검색

Snyk APIarrow-up-right에서 IaC 템플릿을 검색하려면 Org Admin 역할이 있는 Snyk 조직 수준 서비스 계정의 API 토큰이 필요합니다.

  1. Snyk 웹 UIarrow-up-right에서 설정(Settings) > 일반(General) > **조직 ID(Organization ID)**로 이동하여 조직 ID를 복사합니다.

  2. 다음 형식으로 Snyk API에 요청을 보냅니다:

curl -X POST \
'https://api.snyk.io/rest/orgs/YOUR-ORGANIZATION-ID/cloud/permissions?version=2022-12-21~beta' \
-H 'Authorization: token YOUR-API-TOKEN' \
-H 'Content-Type:application/vnd.api+json' -d '{
    "data": {
        "attributes": {
            "type": "tf",
            "platform": "google"
        },
        "type": "permissions"
    }
}'
circle-info

위의 예시는 curlarrow-up-right이지만, Postmanarrow-up-right 또는 HTTPiearrow-up-right와 같은 다른 API 클라이언트를 사용할 수도 있습니다.

응답은 아래와 같은 JSON 문서입니다(길이 때문에 잘림):

JSON 이스케이프 해제

위 출력의 data.attributes.data 필드는 Google 서비스 계정이 포함된 Terraform 템플릿을 포함하는 이스케이프된 JSON 문자열입니다.

템플릿을 사용하여 리소스를 프로비저닝하기 전에 JSON 이스케이프를 해제해야 합니다. 이는 다음 방법 중 하나로 수행할 수 있습니다:

jq 사용

  1. jqarrow-up-right를 다운로드하여 설치합니다.

  2. 템플릿을 검색하기 위해 API 요청을 제출할 때 명령 끝에 다음을 추가합니다:

이렇게 하면 적절하게 형식화된 템플릿이 현재 작업 디렉토리의 snyk_google_iac_template.tf 파일에 배치됩니다.

수동으로 콘텐츠 변환

  1. API 응답에서 data.attributes.data의 내용을 복사합니다. 값의 맨 처음과 맨 끝의 이중 따옴표는 제외합니다. variable \"project_id\"로 시작하는 긴 문자열이 남게 됩니다.

  2. FreeFormatter.comarrow-up-right과 같은 도구에 문자열을 붙여넣어 JSON 이스케이프를 해제합니다.

  3. 이스케이프 해제된 Terraform 출력을 새 .tf 파일로 저장합니다.

다음 단계는 무엇입니까?

다음 단계는 Snyk에 대한 Google 서비스 계정을 생성하는 것입니다.

Last updated