1단계: 서비스 계정 IaC 템플릿(API) 다운로드하기
구글 프로젝트의 리소스 구성을 스캔하기 위한 권한을 제공하는 타이트한 범위의 구글 서비스 계정을 선언하는 인프라 구성(IaC) 템플릿을 다운로드해야 Cloud Environment를 생성할 수 있습니다.
이 템플릿은 구글 클라우드 프로젝트를 위해 일련의 구글 서비스 API를 활성화합니다. 이는 Snyk이 프로젝트 리소스를 스캔하기 위해 필요한 API를 사용할 수 있도록 보장합니다.
이 IaC 템플릿을 사용하여 단계 2: 구글 서비스 계정 생성(API)에서 역할을 프로비저닝할 것입니다.
IaC 템플릿 검색
Snyk API에서 IaC 템플릿을 검색하려면 로그인한 상태에서 Snyk 조직 수준 서비스 계정에 대한 API 토큰이 필요합니다. 이 서비스 계정은 Org Admin 역할을 갖습니다.
Snyk 웹 UI에서 Settings (톱니바퀴 아이콘) > General > Organization ID로 이동하여 조직 ID를 복사합니다.
다음 형식으로 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"
}
}'
응답은 다음과 같이 JSON 문서가 됩니다(길이가 줄어듦):
{
"jsonapi": {
"version": "1.0"
},
"data": {
"id": "00000000-0000-0000-0000-000000000000",
"type": "permissions",
"attributes": {
"data": "variable \"project_id\"<...>",
"type": "tf"
}
}
}
JSON 역 이스케이프
앞서 나온 출력의 data.attributes.data
필드는 Google 서비스 계정이 포함된 Terraform 템플릿이 포함된 이스케이프된 JSON 문자열입니다.
리소스를 프로비저닝하기 위해 템플릿을 사용하려면 JSON을 역 이스케이프해야 합니다. 이 작업은 다음 중 하나로 수행할 수 있습니다:
jq
사용
jq
사용jq를 다운로드하고 설치합니다.
템플릿을 검색하기 위해 API 요청을 제출할 때 명령어 끝에 다음을 추가합니다:
| jq -r .data.attributes.data > snyk_google_iac_template.tf
이렇게 하면 템플릿이 snyk_google_iac_template.tf
파일에 올바르게 포맷팅되어 현재 작업 디렉토리에 저장됩니다.
내용 수동 변환
API 응답에서
data.attributes.data
내용을 복사합니다(값의 가장 처음과 마지막의 이중 따옴표 제외). 이중 따옴표는 킴.FreeFormatter.com
과 같은 도구에 이 문자열을 붙여넣어 JSON을 역 이스케이프합니다.역 이스케이프된 Terraform 출력을 새
.tf
파일로 저장합니다.
다음 단계
다음 단계는 Snyk을 위해 구글 서비스 계정을 생성하는 것입니다.
Last updated