EC2 인스턴스에서 실행되는 앱에 대한 권한 지정 - AWS OpsWorks

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

EC2 인스턴스에서 실행되는 앱에 대한 권한 지정

중요

AWS OpsWorks Stacks은 더 이상 신규 고객을 받지 않습니다. 기존 고객은 2024년 5월 26일까지 OpsWorks 콘솔, API, CLI, CloudFormation 리소스를 정상적으로 사용할 수 있으며, 이때 중단될 예정입니다. 이러한 전환에 대비하려면 가능한 한 빨리 스택을 AWS Systems Manager으로 전환하는 것이 좋습니다. 자세한 정보는 AWS OpsWorks Stacks 수명 종료 관련 자주 묻는 질문AWS Systems Manager 애플리케이션 관리자로 AWS OpsWorks Stacks 애플리케이션 마이그레이션 섹션을 참조하세요.

스택의 Amazon EC2 인스턴스에서 실행되는 애플리케이션이 Amazon S3 버킷 같은 다른 AWS 리소스에 액세스해야 하는 경우, 해당 애플리케이션에 적절한 권한이 있어야 합니다. 이러한 권한을 부여하려면 인스턴스 프로파일을 사용합니다. AWS OpsWorks Stacks 스택을 생성할 때 각 인스턴스에 대해 인스턴스 프로파일을 지정할 수 있습니다.


            스택 추가 페이지의 고급 옵션.

계층 구성을 편집하여 계층의 인스턴스에 대한 프로파일을 지정할 수도 있습니다.

인스턴스 프로파일은 IAM 역할을 지정합니다. 인스턴스에서 실행되는 애플리케이션은 해당 역할을 수행하여 역할의 정책이 부여하는 권한에 따라 AWS 리소스에 액세스할 수 있습니다. 애플리케이션이 역할을 수행하는 방식에 대한 자세한 내용은 API 호출을 사용하여 역할 수행을 참조하십시오.

다음 방법 중 하나를 사용하여 인스턴스 프로파일을 생성할 수 있습니다.

인스턴스 프로파일에는 신뢰 관계와 AWS 리소스에 액세스할 수 있는 권한을 부여하는 연결된 정책이 있어야 합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

AWS OpsWorks Stacks가 사용자를 대신하여 작업하려면 인스턴스 프로파일에 이 신뢰 관계가 있어야 합니다. 기본 서비스 역할을 사용하는 경우, 신뢰 관계를 수정하지 마십시오. 사용자 지정 서비스 역할을 생성하는 경우, 다음과 같이 신뢰 관계를 지정합니다.

  • IAM 콘솔에서 역할 생성 마법사를 사용하는 경우 마법사의 두 번째 페이지에 있는 AWS 서비스 역할에서 Amazon EC2 역할 유형을 지정합니다.

  • AWS CloudFormation 템플릿을 사용하는 경우, 다음을 리소스 섹션에 추가할 수 있습니다.

    "Resources": { "OpsWorksEC2Role": { "Type": "AWS::IAM::Role", "Properties": { "AssumeRolePolicyDocument": { "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "ec2.amazonaws.com" ] }, "Action": [ "sts:AssumeRole" ] } ] }, "Path": "/" } }, "RootInstanceProfile": { "Type": "AWS::IAM::InstanceProfile", "Properties": { "Path": "/", "Roles": [ { "Ref": "OpsWorksEC2Role" } ] } } }

자체 인스턴스 프로파일을 생성하는 경우, 그 시점의 프로파일의 역할에 적절한 정책을 연결할 수 있습니다. 스택을 생성한 후 IAM 콘솔 또는 API를 사용하여 프로파일의 역할에 적절한 정책을 연결해야 합니다. 예를 들어, 다음 정책은 DOC-EXAMPLE-BUCKET이라는 Amazon S3 버킷의 모든 객체에 대한 전체 액세스 권한을 부여합니다. 리전DOC-EXAMPLE-BUCKET을 구성에 적합한 값으로 바꾸십시오.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:*", "Resource": "arn:aws:s3:region::DOC-EXAMPLE-BUCKET/*" } ] }

인스턴스 프로파일을 생성하고 사용하는 방법의 예제는 Amazon S3 버킷 사용을 참조하십시오.

애플리케이션이 인스턴스 프로파일을 사용하여 EC2 인스턴스에서 AWS OpsWorks Stacks API를 호출하는 경우, 정책이 AWS OpsWorks Stacks 및 기타 AWS 서비스에 적절한 작업 외에 iam:PassRole 작업을 허용해야 합니다. iam:PassRole 권한은 AWS OpsWorks Stacks가 사용자를 대신하여 서비스 역할을 수행하도록 허용합니다. AWS OpsWorks Stacks API에 대한 자세한 내용은 AWS OpsWorks API 참조를 참조하십시오.

다음은 Amazon EC2 또는 Amazon S3 작업뿐 아니라 EC2 인스턴스에서 AWS OpsWorks Stacks 작업을 호출하도록 허용하는 IAM 정책 예제입니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:*", "s3:*", "opsworks:*", "iam:PassRole" ], "Resource": "arn:aws:ec2:region:account_id:instance/*", "Condition": { "StringEquals": { "iam:PassedToService": "opsworks.amazonaws.com" } } } ] }
참고

iam:PassRole을 허용하지 않으면 AWS OpsWorks Stacks 작업 호출 시도는 다음과 같은 오류와 함께 실패합니다.

User: arn:aws:sts::123456789012:federated-user/Bob is not authorized to perform: iam:PassRole on resource: arn:aws:sts::123456789012:role/OpsWorksStackIamRole

EC2 인스턴스의 역할을 사용하여 권한을 부여하는 방법에 대한 자세한 내용은 AWS Identity and Access Management 사용 설명서Amazon EC2 인스턴스에서 실행하는 애플리케이션에 AWS 리소스에 대한 액세스 권한 부여를 참조하세요.