1단계: Azure 앱 등록 IaC 템플릿 또는 스크립트 다운로드 (API)

Azure 구독을 위한 클라우드 환경을 생성하기 전에, 다음 리소스를 선언하는 Terraform 코드형 인프라(IaC) 템플릿 또는 Azure CLI Bash 스크립트를 다운로드해야 합니다:

이 인프라는 Snyk에 구독의 리소스 구성을 스캔할 수 있는 읽기 전용 권한을 부여합니다.

다운로드한 IaC 템플릿 또는 Bash 스크립트를 사용하여 2단계: Entra ID 앱 등록 생성 (API)에서 인프라를 프로비저닝합니다.

두 가지 방법 모두 동일한 인프라를 생성하므로, 가장 익숙한 방법을 선택하십시오.

IaC 템플릿 또는 스크립트 검색

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

또한 온보딩 중인 Azure 구독의 구독 및 테넌트 ID가 필요합니다. Azure 문서에 설명된arrow-up-right 방법을 사용하여 찾을 수 있습니다.

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

  2. 다음 형식으로 Snyk API에 요청을 보냅니다. INPUT-TYPE을 Terraform의 경우 tf로, Bash의 경우 bash로 바꿉니다:

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": {
            "options": {
              "subscription_id": "YOUR-SUBSCRIPTION-ID",
              "tenant_id": "YOUR-TENANT-ID"
            },
            "type": "INPUT-TYPE",
            "platform": "azure"
        },
        "type": "permissions"
    }
}'
circle-info

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

Bash 스크립트를 로컬에서 실행하는 대신 Azure Cloud Shellarrow-up-right을 사용하여 실행하려는 경우, Cloud Shell에서 위의 curl 명령을 실행하십시오.

API 응답 이해

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

Terraform 구성이 포함된 응답 예시:

Bash 스크립트가 포함된 응답 예시:

JSON 이스케이프 해제

위 출력의 data.attributes.data 필드는 Entra ID 앱 등록, 페더레이션된 ID 자격 증명 및 서비스 주체가 포함된 Terraform 템플릿 또는 Bash 스크립트를 포함하는 이스케이프된 JSON 문자열입니다.

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

jq 사용

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

  2. 템플릿 검색 중에 API 요청을 제출할 때 명령 끝에 다음을 추가합니다:\ | jq -r .data.attributes.data > snyk_azure_permissions 이렇게 하면 적절하게 형식화된 템플릿이 현재 작업 디렉토리의 snyk_azure_permissions 파일에 배치됩니다.

  3. 파일 이름을 .tf(Terraform) 또는 .sh(Bash) 확장자로 변경합니다.

수동으로 콘텐츠 변환

  1. API 응답에서 data.attributes.data의 내용을 복사합니다. 값의 맨 처음과 맨 끝의 이중 따옴표는 제외합니다. provider \"azuread\"(Terraform) 또는 objectId=$(az ad app create(Bash)로 시작하는 긴 문자열이 남게 됩니다.

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

  3. 이스케이프 해제된 출력을 새 .tf 파일(Terraform) 또는 .sh 파일(Bash)로 저장합니다.

다음 단계는 무엇입니까?

다음 단계는 다운로드한 템플릿 또는 스크립트를 사용하여 Snyk에 대한 Entra ID 앱 등록, 페더레이션된 ID 자격 증명 및 서비스 주체를 생성하는 것입니다.

Last updated