CloudFormation 레지스트리에서 서드 파티 공개 확장 프로그램 사용
템플릿에서 서드 파티 공개 확장 프로그램을 사용하려면 먼저 해당 확장 프로그램을 사용하려는 계정과 리전에 대해 확장 프로그램을 활성화해야 합니다. 확장 프로그램이 활성화된 계정과 리전의 스택 작업에서 해당 확장 프로그램을 사용할 수 있습니다.
서드 파티 공개 확장 프로그램을 활성화하면 CloudFormation은 활성화된 확장 프로그램에 대한 항목을 계정의 확장 프로그램 레지스트리에 비공개 확장 프로그램으로 생성합니다. 이를 통해 확장 프로그램에 포함된 모든 구성 속성을 설정할 수 있습니다. 구성 속성은 지정된 AWS 계정과 리전에 대해 확장 프로그램이 구성되는 방법을 정의합니다.
구성 속성을 설정하는 것 외에도 다음과 같은 방법으로 확장 프로그램을 사용자 지정할 수 있습니다.
-
익스텐션에 대한 로깅을 구성하는 것 외에도 CloudFormation이 익스텐션을 활성화하는 데 사용하는 실행 역할을 지정합니다.
-
새 마이너 버전이나 패치 버전을 사용할 수 있게 되면 익스텐션을 자동으로 업데이트할지 여부를 지정합니다.
-
서드 파티 공개 확장 프로그램 이름 대신 사용할 별칭을 지정합니다. 이렇게 하면 타사 익스텐션 간의 이름 충돌을 방지할 수 있습니다.
주제
공개 확장 프로그램 액세스를 위해 IAM 권한 및 신뢰 정책으로 실행 역할 구성
CloudFormation 레지스트리에서 공개 확장 프로그램을 활성화하면 CloudFormation에 AWS 계정 및 리전에서 해당 확장 프로그램을 간접적으로 호출하는 데 필요한 권한을 부여하는 실행 역할을 제공할 수 있습니다.
실행 역할에 필요한 권한은 확장 프로그램 스키마의 핸들러 섹션에 정의되어 있습니다. 확장 프로그램에 필요한 특정 권한을 부여하는 IAM 정책을 생성하고 실행 역할에 연결해야 합니다.
권한 정책 외에도 실행 역할에 CloudFormation이 해당 역할을 수임할 수 있도록 허용하는 신뢰 정책도 있어야 합니다. IAM 사용 설명서의 사용자 지정 트러스트 정책을 사용하여 역할 생성에 설명된 지침에 따라 사용자 지정 신뢰 정책으로 역할을 생성합니다.
신뢰 관계
다음은 사용할 수 있는 신뢰 정책의 예입니다.
Condition
필드와 함께 하나 이상의 글로벌 조건 컨텍스트 키를 사용하여 서비스 간 혼동된 대리인 방지를 위해 권한 범위를 선택적으로 제한할 수 있습니다. 자세한 내용은 교차 서비스 혼동된 대리인 방지 단원을 참조하십시오.
-
aws:SourceAccount
값을 계정 ID로 설정합니다. -
aws:SourceArn
값을 확장 프로그램의 ARN으로 설정합니다.
신뢰 정책 예제 1
다음은 리소스 유형 확장 프로그램에 대한 IAM 역할 신뢰 정책의 예입니다.
{ "Version": "2012-10-17", "Statement":[ { "Effect": "Allow", "Principal":{ "Service": "resources.cloudformation.amazonaws.com" }, "Action":"sts:AssumeRole", "Condition":{ "StringEquals":{ "aws:SourceAccount":"
123456789012
" }, "StringLike":{ "aws:SourceArn":"arn:aws:cloudformation:us-west-2:123456789012:type/resource/Organization-Service-Resource/*
" } } } ] }
신뢰 정책 예제 2
다음은 후크 확장 프로그램에 대한 IAM 역할 신뢰 정책의 예입니다.
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal": { "Service": [ "resources.cloudformation.amazonaws.com", "hooks.cloudformation.amazonaws.com" ] }, "Action":"sts:AssumeRole", "Condition":{ "StringEquals":{ "aws:SourceAccount":"
123456789012
" }, "StringLike":{ "aws:SourceArn":"arn:aws:cloudformation:us-west-2:123456789012:type/hook/Organization-Service-Hook/*
" } } } ] }
자동으로 새로운 버전의 확장 프로그램 사용
익스텐션을 활성화할 때 최신 마이너 버전을 사용하도록 익스텐션 유형을 지정할 수도 있습니다. 게시자가 활성화된 익스텐션의 새 버전을 출시할 때마다 익스텐션 유형이 마이너 버전을 업데이트합니다.
예를 들어, 다음에 해당 익스텐션이 포함된 템플릿을 사용하여 스택 생성 또는 업데이트와 같은 스택 작업을 수행할 때 CloudFormation은 새로운 마이너 버전을 사용합니다.
새 익스텐션 버전으로 자동 또는 수동 업데이트해도 스택에 이미 프로비저닝된 익스텐션 인스턴스에는 영향이 없습니다.
CloudFormation은 익스텐션의 메이저 버전 업데이트를 잠재적으로 주요 변경 사항을 포함하는 것으로 취급하므로 새로운 메이저 버전의 익스텐션으로 수동 업데이트해야 합니다.
AWS에 의해 게시된 확장 프로그램은 사용 가능한 모든 계정과 리전에 대해 기본적으로 활성화되며 항상 각 AWS 리전에서 사용 가능한 최신 버전을 사용합니다.
중요
확장 프로그램이 계정의 최신 버전으로 업데이트되는지 여부와 시기를 제어하므로 동일한 확장 프로그램의 다른 버전이 다른 계정 및 리전에 배포될 수 있습니다.
이로 인해 해당 계정과 리전에서 해당 확장 프로그램이 포함된 동일한 템플릿을 사용할 때 예기치 않은 결과가 발생할 수 있습니다.
별칭을 사용하여 확장 프로그램 참조
지정된 AWS 계정과 리전에서 지정된 이름으로 여러 확장 프로그램을 활성화할 수 없습니다. 다른 게시자가 동일한 익스텐션 이름으로 퍼블릭 익스텐션을 제공할 수 있기 때문에 CloudFormation을 사용하면 활성화하는 모든 타사 퍼블릭 익스텐션에 대한 별칭을 지정할 수 있습니다.
확장 프로그램에 대한 별칭을 지정하면 CloudFormation은 별칭을 계정과 리전 내에서 확장 프로그램 유형 이름으로 처리합니다. 템플릿, API 호출 및 CloudFormation 콘솔에서 익스텐션을 참조하려면 별칭을 사용해야 합니다.
타사 별칭은 지정된 계정과 리전 내에서 고유해야 합니다. 서로 다른 유형 이름 별칭을 사용하여 동일한 계정과 리전에서 동일한 퍼블릭 리소스를 여러 번 활성화할 수 있습니다.
중요
확장 프로그램 별칭은 지정된 계정과 리전에서만 고유해야 하지만 사용자가 계정과 리전 전반에 걸쳐 다른 서드 파티 공개 확장 프로그램에 동일한 별칭을 할당하지 않는 것이 좋습니다. 이렇게 하면 여러 계정 또는 리전에서 확장 프로그램 별칭이 포함된 템플릿을 사용할 때 예상치 못한 결과가 발생할 수 있습니다.
공개 확장 프로그램 작업에 일반적으로 사용되는 AWS CLI 명령
공개 확장 프로그램 작업에 일반적으로 사용되는 명령은 다음과 같습니다.
-
activate-type - 계정의 공개 서드 파티 모듈 또는 리소스 유형을 활성화합니다.
-
set-type-configuration - 계정의 익스텐션에 대한 구성 데이터를 지정하고 Hooks를 비활성화 및 활성화합니다.
-
list-types - 계정의 확장 프로그램을 나열합니다.
-
describe-type - 현재 구성 데이터를 포함하여 특정 확장 프로그램 또는 특정 확장 프로그램 버전에 대한 자세한 정보를 반환합니다.
-
set-type-default-version - 확장 프로그램의 기본 버전을 지정합니다.
-
deactivate-type - 계정의 이전에 활성화된 공개 서드 파티 모듈 또는 리소스 유형을 비활성화합니다.