iac describe를 사용하려면 AWS에 인증된 요청을 보내도록 자격 증명을 설정해야 합니다. AWS CLI와 마찬가지로 사용자 환경 변수 또는 로컬 AWS 구성 파일에 선언된 자격 증명 및 구성 설정을 사용하십시오.
iac describe 명령은 명명된 프로필을 지원합니다. 기본적으로 CLI는 default라는 프로필에서 발견된 설정을 사용합니다. AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_PROFILE 등과 같은 지원되는 환경 변수를 선언하여 개별 설정을 재정의할 수 있습니다.
권장되는 모범 사례인 IAM 역할을 인증 도구로 사용하는 경우 ~/.aws/config 파일에 역할에 대한 프로필을 정의하여 iac describe를 계속 사용할 수 있습니다.
[profile snykrole]
role_arn = arn:aws:iam::123456789012:role/<NAMEOFTHEROLE>
source_profile = user # 역할을 가정할 프로필
region = eu-west-3
S3에서 상태를 읽기 위해 다른 AWS 자격 증명 세트를 사용하려는 경우, 각 특정 AWS 환경 변수를 DCTL_S3_ 접두사로 재정의할 수 있습니다. 목적은 인프라와 다른 리전에서 상태를 읽을 수 있는 선택권을 갖기 위함입니다. 실제 인프라의 리소스를 읽기 위해 일반적인 AWS 자격 증명을 사용하는 것을 잊지 마십시오.
# S3 백엔드에서 상태를 읽기 위한 전용 AWS 명명된 프로필(또는 다른 AWS 환경 변수) 내보내기
$ export DCTL_S3_PROFILE="s3reader"
# 일반 AWS 명명된 프로필 내보내기
$ export AWS_PROFILE="snykrole"
$ snyk iac describe --from="tfstate+s3://mybucket/terraform.tfstate"
# S3 버킷에 인증하기 위해 특정 리전을 사용할 수도 있습니다.
$ DCTL_S3_REGION=us-east-1 snyk iac describe --from="tfstate+s3://mybucket/terraform.tfstate"
Terraform 사용자 지정 역할
다음 코드는 HCL로 작성된 iac describe를 실행하기 위해 가정할 수 있는 사용자 지정 역할을 나타냅니다.
CloudFormation 템플릿
이 CloudFormation 템플릿을 배포하여 이 페이지의 이전 섹션에 있는 인증 가이드에 따라 사용할 수 있는 제한된 권한 역할을 생성하십시오.
**현재 템플릿 바꾸기(Replace current template)**를 선택하고 Snyk Amazon S3 URLhttps://driftctl-cfn-templates.s3.eu-west-3.amazonaws.com/driftctl-role.yml을 지정한 다음 **다음(Next)**을 클릭합니다.
스택 세부 정보 지정(Specify stack details) 및 스택 옵션 구성(Configure stack options) 페이지에서 **다음(Next)**을 클릭합니다.
변경 세트 미리 보기(Change set preview) 섹션에서 AWS CloudFormation이 변경 사항을 적용할 것임을 확인합니다.
Snyk 템플릿에 하나의 IAM 리소스가 포함되어 있으므로 **이 템플릿이 IAM 리소스를 생성할 수 있음을 인정합니다(I acknowledge that this template may create IAM resources)**를 선택합니다.
마지막으로 **스택 업데이트(Update stack)**를 클릭합니다.
AWS CLI를 사용하여 CloudFormation 템플릿 업데이트
다음 명령을 사용하십시오:
최소 권한 정책
iac describe 명령은 리소스를 나열할 수 있도록 클라우드 공급자 계정에 대한 액세스 권한이 필요합니다.