block-quote On this pagechevron-down
copy Copy chevron-down
Snyk으로 스캔 chevron-right Snyk IaC chevron-right 클라우드 플랫폼 통합 chevron-right AWS 통합 chevron-right AWS 통합: API 1단계: IAM 역할 IaC 템플릿 다운로드 (API) 클라우드 환경을 생성하기 전에, Snyk이 Amazon Web Services (AWS) 계정의 리소스 구성을 스캔하기 위해 가정할 수 있는 읽기 전용 IAM(Identity and Access Management) 역할을 선언하는 IaC(Infrastructure as Code) 템플릿을 다운로드해야 합니다.
이 IaC 템플릿을 사용하여 2단계: Snyk IAM 역할 생성 에서 역할을 프로비저닝합니다.
템플릿 형식은 Terraform HCLarrow-up-right 또는 AWS CloudFormationarrow-up-right 중에서 선택할 수 있습니다. IAM 권한은 둘 다 동일하므로, 가장 익숙한 형식을 선택하십시오.
Snyk API 엔드포인트 클라우드 공급자 권한 생성(Generate Cloud Provider Permissions)arrow-up-right 을 사용하여 IaC 템플릿을 검색하려면 Org Admin 역할이 있는 조직 수준 서비스 계정 의 API 토큰이 필요합니다.
다음 형식으로 Snyk API에 요청을 보냅니다. INPUT-TYPE을 Terraform의 경우 tf로, CloudFormation의 경우 cf로 바꿉니다:
Copy 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": "INPUT-TYPE",
"platform": "aws"
},
"type": "permissions"
}
}' 응답은 아래와 같은 JSON 문서입니다(길이 때문에 잘림).
Terraform 구성이 포함된 응답 예시:
CloudFormation 템플릿이 포함된 응답 예시:
위 출력의 data.attributes.data 필드는 IAM 역할 및 정책이 포함된 Terraform 또는 CloudFormation 템플릿을 포함하는 이스케이프된 JSON 문자열입니다.
템플릿을 사용하여 리소스를 프로비저닝하기 전에 JSON 이스케이프를 해제해야 합니다. 이는 다음 방법으로 수행할 수 있습니다:
템플릿을 검색하기 위해 API 요청을 제출할 때 명령 끝에 다음을 추가합니다:
이렇게 하면 적절하게 형식화된 템플릿이 현재 작업 디렉토리의 snyk_iac_template 파일에 배치됩니다.
파일 이름을 .tf 확장자(Terraform) 또는 .yaml(CloudFormation)으로 변경합니다.
API 응답에서 data.attributes.data의 내용을 복사합니다. 값의 맨 처음과 맨 끝의 이중 따옴표는 제외합니다. data \"aws_iam_policy_document\"(Terraform) 또는 AWSTemplateFormatVersion(CloudFormation)으로 시작하는 긴 문자열이 남게 됩니다.
이스케이프 해제된 출력을 새 .tf 파일(Terraform) 또는 .yaml 파일(CloudFormation)로 저장합니다.
선택 사항: IAM 역할 이름 변경
기본적으로 Snyk IAM 역할의 이름은 snyk-cloud-role입니다. 조직에 특정 역할 명명 요구 사항이 있는 경우 Terraform 또는 CloudFormation 템플릿에서 이 이름을 변경할 수 있습니다.
Terraform 에서 역할 이름은 19번째 줄에 있습니다:
CloudFormation 에서 역할 이름은 7번째 줄에 있습니다:
다음 단계는 다운로드한 템플릿을 사용하여 Snyk에 대한 IAM 역할 및 정책을 생성하는 것입니다.