기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
CloudFormation의 서비스 역할
서비스 역할은가 스택 리소스를 생성, 업데이트 또는 삭제할 AWS CloudFormation 수 있도록 허용하는 AWS Identity and Access Management (IAM) 역할입니다. 서비스 역할을 제공하지 않으면 CloudFormation은 IAM 보안 주체의 자격 증명을 사용하여 스택 작업을 수행합니다. CloudFormation에 대한 서비스 역할을 생성하고 스택 생성 중에 서비스 역할을 지정하는 경우 CloudFormation은 IAM 보안 주체의 자격 증명 대신 서비스 역할의 자격 증명을 사용하여 작업을 수행합니다.
서비스 역할을 사용할 때 IAM 보안 주체에 연결된 자격 증명 기반 정책에는 CloudFormation 템플릿에 정의된 모든 AWS 리소스를 프로비저닝할 권한이 필요하지 않습니다. 개발 파이프라인( AWS 권장하는 모범 사례)을 통해 중요한 비즈니스 운영을 위한 AWS 리소스를 프로비저닝할 준비가 되지 않은 경우 서비스 역할을 사용하면에서 리소스 관리를 위한 추가 보호 계층을 추가할 수 있습니다 AWS. 이 접근 방식의 이점은 다음과 같습니다.
-
조직의 IAM 보안 주체는 환경에서 AWS 리소스를 수동으로 생성하거나 변경하지 못하도록 하는 최소 권한 모델을 따릅니다.
-
AWS 리소스를 생성, 업데이트 또는 삭제하려면 IAM 보안 주체가 CloudFormation을 사용해야 합니다. 이렇게 하면 코드형 인프라를 통한 리소스 프로비저닝이 표준화됩니다.
예를 들어 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스가 포함된 스택을 생성하려면 IAM 보안 주체에게 자격 증명 기반 정책을 통해 EC2 인스턴스를 생성할 수 있는 권한이 있어야 합니다. 대신 CloudFormation은 보안 주체를 대신하여 EC2 인스턴스를 생성할 권한이 있는 서비스 역할을 수임할 수 있습니다. 이 접근 방식을 사용하면 IAM 보안 주체가 스택을 생성할 수 있으며, IAM 보안 주체에게 정기적으로 액세스해서는 안 되는 서비스에 대해 지나치게 광범위한 권한을 부여할 필요가 없습니다.
서비스 역할을 사용하여 CloudFormation 스택을 생성하려면 IAM 보안 주체에게 서비스 역할을 CloudFormation에 전달할 권한이 있어야 하며, 서비스 역할의 신뢰 정책은 CloudFormation이 역할을 수임하도록 허용해야 합니다.
이 섹션은 다음 주제를 포함합니다:
CloudFormation 서비스 역할에 대한 최소 권한 구현
서비스 역할에서 서비스가 수행할 수 있는 작업을 명시적으로 지정하는 권한 정책을 정의합니다. 이는 IAM 보안 주체가 수행할 수 있는 것과 동일한 작업이 아닐 수 있습니다. CloudFormation 템플릿에서 역방향으로 작업하여 최소 권한 원칙을 준수하는 서비스 역할을 생성하는 것이 좋습니다.
IAM 보안 주체의 자격 증명 기반 정책을 적절하게 조정하여 특정 서비스 역할만 전달하고 특정 보안 주체만 역할을 수임할 수 있도록 서비스 역할의 신뢰 정책을 조정하면 서비스 역할을 통해 가능한 권한 에스컬레이션을 방지하는 데 도움이 됩니다.
서비스 역할 구성
참고
서비스 역할은 IAM에서 구성됩니다. 서비스 역할을 생성하려면 서비스 역할을 생성할 수 있는 권한이 있어야 합니다. 역할을 생성하고 정책을 연결할 수 있는 권한이 있는 IAM 보안 주체는 자신의 권한을 에스컬레이션할 수 있습니다. AWS 각 사용 사례에 대해 각 AWS 서비스 에 대해 하나의 서비스 역할을 생성하는 것이 좋습니다. 사용 사례에 맞는 CloudFormation 서비스 역할을 생성한 후 사용자가 승인된 서비스 역할만 CloudFormation에 전달하도록 허용할 수 있습니다. 사용자가 서비스 역할을 생성할 수 있도록 허용하는 샘플 자격 증명 기반 정책은 IAM 설명서의 서비스 역할 권한을 참조하세요.
서비스 역할을 생성하는 방법에 대한 지침은 에 권한을 위임할 역할 생성을 참조하세요 AWS 서비스. 역할을 위임할 수 있는 서비스로 CloudFormation(cloudformation.amazonaws.com
)을 지정합니다. 이렇게 하면 IAM 보안 주체가 역할을 수임하거나 다른 서비스에 전달하는 것을 방지할 수 있습니다. 서비스 역할을 구성할 때 , Effect
Action
및 Resource
요소가 필요합니다. 선택적으로 Condition
요소를 정의할 수도 있습니다.
이러한 요소에 대한 자세한 내용은 IAM JSON 정책 요소 참조를 참조하세요. 작업, 리소스 및 조건 키의 전체 목록은 Identity and Access Management의 작업, 리소스 및 조건 키를 참조하세요.
IAM 보안 주체에게 CloudFormation 서비스 역할을 사용할 수 있는 권한 부여
CloudFormation 서비스 역할을 사용하여 CloudFormation을 통해 리소스를 프로비저닝하려면 IAM 보안 주체에 서비스 역할을 전달할 권한이 있어야 합니다. 보안 주체 권한에 역할의 ARN을 지정하여 IAM 보안 주체의 권한이 특정 역할만 전달하도록 제한할 수 있습니다. 자세한 내용은 IAM 설명서의 에 역할을 전달할 수 있는 사용자 권한 부여 AWS 서비스를 참조하세요.
다음 IAM 자격 증명 기반 정책 문을 사용하면 보안 주체가 cfnroles
경로에 있는 서비스 역할을 포함한 역할을 전달할 수 있습니다. 보안 주체는 다른 경로에 있는 역할을 전달할 수 없습니다.
{ "Sid": "AllowPassingAppRoles", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::
<account ID>
:role/cfnroles/*" }
보안 주체를 특정 역할로 제한하는 또 다른 접근 방식은 CloudFormation 서비스 역할 이름에 접두사를 사용하는 것입니다. 다음 정책 문은 IAM 보안 주체가 CFN-
접두사가 있는 역할만 전달할 수 있도록 허용합니다.
{ "Sid": "AllowPassingAppRoles", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::
<account ID>
:role/CFN-*" }
이전 정책 설명 외에도 cloudformation:RoleARN
조건 키를 사용하여 최소 권한 액세스를 위해 자격 증명 기반 정책에서 세분화된 제어를 추가로 제공할 수 있습니다. 다음 정책 문은 IAM 보안 주체가 특정 CloudFormation 서비스 역할을 전달하는 경우에만 스택을 생성, 업데이트 및 삭제하도록 허용합니다. 변형으로 조건 키에서 둘 이상의 CloudFormation 서비스 역할의 ARNs을 정의할 수 있습니다.
{ "Sid": "RestrictCloudFormationAccess", "Effect": "Allow", "Action": [ "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:UpdateStack" ], "Resource": "arn:aws:iam::
<account ID>
:role/CFN-*", "Condition": { "StringEquals": { "cloudformation:RoleArn": [ "<ARN of the specific CloudFormation service role>
" ] } } }
또한 cloudformation:RoleARN
조건 키를 사용하여 IAM 보안 주체가 스택 작업에 대해 권한이 높은 CloudFormation 서비스 역할을 전달하지 못하도록 제한할 수 있습니다. 필요한 유일한 변경 사항은에서 StringEquals
로 조건부 연산자입니다StringNotEquals
.
{ "Sid": "RestrictCloudFormationAccess", "Effect": "Allow", "Action": [ "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:UpdateStack" ], "Resource": "arn:aws:iam::
<account ID>
:role/CFN-*", "Condition": { "StringNotEquals": { "cloudformation:RoleArn": [ "<ARN of a privilege CloudFormation service role>
" ] } } }
CloudFormation 서비스 역할에 대한 신뢰 정책 구성
역할 신뢰 정책은 IAM 역할에 연결된 필수 리소스 기반 정책입니다. 신뢰 정책은 역할을 수임할 수 있는 IAM 보안 주체를 정의합니다. 신뢰 정책에서 사용자, 역할, 계정 또는 서비스를 보안 주체로 지정할 수 있습니다. IAM 보안 주체가 CloudFormation에 대한 서비스 역할을 다른 서비스에 전달하지 못하도록 하려면 역할의 신뢰 정책에서 CloudFormation을 보안 주체로 지정할 수 있습니다.
다음 신뢰 정책은 CloudFormation 서비스만 서비스 역할을 수임하도록 허용합니다.
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": { "Service": "cloudformation.amazonaws.com" }, "Action": "sts:AssumeRole" } }
서비스 역할을 스택과 연결
서비스 역할이 생성된 후 스택을 생성할 때 스택과 연결할 수 있습니다. 자세한 내용은 스택 옵션 구성을 참조하세요. 서비스 역할을 지정하기 전에 IAM 보안 주체에게 서비스 역할을 전달할 권한이 있는지 확인합니다. 자세한 내용은 IAM 보안 주체에게 CloudFormation 서비스 역할을 사용할 수 있는 권한 부여 단원을 참조하십시오.