사용자에게 역할 전달 권한 부여 AWS 서비스 - AWS Identity and Access Management

문서의 영문과 번역 사이에 충돌이 있는 경우에는 영문 버전을 따릅니다. 번역 버전은 기계 번역을 사용하여 제공합니다.

사용자에게 역할 전달 권한 부여 AWS 서비스

다수의 AWS 서비스를 구성하려면 IAM 역할을 서비스에 전달해야 합니다. 그러면 서비스가 나중에 역할을 수임하고 사용자 대신 작업을 수행할 수 있습니다. 서비스가 역할을 수임할 때마다가 아니라 설정 중에 한 번만 역할을 서비스에 전달해야 합니다. 예를 들어 Amazon EC2 인스턴스에서 실행 중인 애플리케이션이 있다고 가정합니다. 해당 애플리케이션에는 인증을 위한 임시 자격 증명과 AWS에서 작업을 수행할 수 있는 애플리케이션을 승인할 권한이 필요합니다. 애플리케이션을 설정할 때는 역할을 EC2에 전달하여 해당 자격 증명을 제공하는 인스턴스와 함께 사용해야 합니다. IAM 정책을 역할에 연결하여 인스턴스에서 실행 중인 애플리케이션에 대한 권한을 정의합니다. 애플리케이션은 역할이 허용하는 작업을 수행해야 할 때마다 역할을 수임합니다.

AWS 서비스에 역할(및 그 권한)을 전달하려면 사용자에게 서비스에 역할을 전달할 권한이 있어야 합니다. 이를 통해 관리자는 승인된 사용자만 권한이 부여된 역할을 통해 서비스를 구성하도록 할 수 있습니다. 사용자가 AWS 서비스에 역할을 전달하도록 하려면 해당 사용자의 IAM 사용자, 역할 또는 그룹에 PassRole 권한을 부여해야 합니다.

참고

ResourceTag/key-name 조건 키를 사용하는 역할에 연결된 태그를 기반으로 하는 역할을 전달할 권한을 제한할 수는 없습니다. 자세한 정보는 에 대한 액세스 제어 AWS 자원 단원을 참조하십시오.

서비스 연결 역할을 생성하는 경우 해당 역할을 서비스에 전달할 권한도 있어야 합니다. 일부 서비스는 서비스에서 작업을 수행할 때 계정에 서비스 연결 역할을 자동으로 생성합니다. 예를 들어 Amazon EC2 Auto Scaling에서는 사용자가 Auto Scaling 그룹을 처음으로 생성할 때 사용자를 대신해 AWSServiceRoleForAutoScaling 서비스 연결 역할을 생성합니다. PassRole 권한 없이 Auto Scaling 그룹을 생성하려고 하면 오류가 발생합니다. 서비스 연결 역할을 지원하는 서비스를 알아보려면 AWS 서비스 제공 IAM 단원을 참조하십시오. 서비스에서 작업 수행 시 자동으로 서비스 연결 역할을 생성하는 서비스를 알아보려면 링크를 선택하고 해당 서비스에 대한 서비스 연결 역할 설명서를 확인합니다.

사용자는 역할을 사용하여 서비스에 권한을 할당하는 API 작업에서 파라미터로 역할 ARN을 전달할 수 있습니다. 그런 다음 서비스는 해당 사용자에게 iam:PassRole 권한이 있는지 확인합니다. 사용자가 승인된 역할만 전달하도록 제한하려면 IAM 정책 문의 Resources 요소로 iam:PassRole 권한을 필터링하면 됩니다.

예 1

인스턴스를 시작한 후 사용자에게 Amazon EC2 서비스에 승인된 역할 집합을 전달할 수 있는 권한을 부여하려 한다고 가정하겠습니다. 다음 세 가지 요소가 필요합니다.

  • 역할이 수행할 수 있는 작업을 결정하는, 역할에 연결된 IAM권한 정책입니다. 역할이 수행해야 하는 작업 및 역할이 그러한 작업을 수행하는 데 필요한 리소스만으로 권한을 한정할 수 있습니다. AWS 관리형 또는 고객이 생성한 IAM 권한 정책을 사용할 수 있습니다.

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "A list of the permissions the role is allowed to use" ], "Resource": [ "A list of the resources the role is allowed to access" ] } }
  • 서비스에서 역할을 위임하도록 허용하는 역할에 대한 신뢰 정책입니다. 예를 들어, UpdateAssumeRolePolicy 작업이 있는 역할에 다음과 같은 신뢰 정책을 연결할 수 있습니다. 이 신뢰 정책을 통해 Amazon EC2는 해당 역할 및 해당 역할과 연결된 권한을 사용할 수 있습니다.

    { "Version": "2012-10-17", "Statement": { "Sid": "TrustPolicyStatementThatAllowsEC2ServiceToAssumeTheAttachedRole", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } }
  • 사용자가 승인된 역할만 전달하도록 허용하는 IAM 사용자에 연결된 권한 정책IAM입니다. iam:PassRole 보통 다음을 동반합니다. iam:GetRole 사용자가 전달할 역할의 세부 정보를 가져올 수 있습니다. 이 예제에서 사용자는 지정된 계정에 있으며 다음과 같이 이름이 EC2-roles-for-XYZ-로 시작하는 역할만 전달할 수 있습니다.

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "iam:GetRole", "iam:PassRole" ], "Resource": "arn:aws:iam::<account-id>:role/EC2-roles-for-XYZ-*" }] }

이제 사용자는 할당된 역할로 Amazon EC2 인스턴스를 시작할 수 있습니다. 이 인스턴스에서 실행되는 애플리케이션은 인스턴스 프로파일 메타데이터를 통해 역할의 임시 자격 증명에 액세스할 수 있습니다. 역할에 연결된 권한 정책에 따라 인스턴스가 수행할 수 있는 작업이 결정됩니다.

예 2

Amazon Relational Database Service(Amazon RDS)는 확장 모니터링이라는 기능을 지원합니다. 이 기능을 사용하면 Amazon RDS에서 에이전트를 사용하여 데이터베이스 인스턴스를 모니터링할 수 있습니다. 또한 Amazon RDS에서 Amazon CloudWatch Logs에 측정치를 기록할 수도 있습니다. 이 기능을 사용하려면 서비스 역할을 생성하여 로그에 대한 측정치를 모니터링하고 작성할 수 있는 권한을 Amazon RDS에 부여해야 합니다.

에 대한 역할을 만들려면 Amazon RDS 향상된 모니터링

  1. AWS Management 콘솔에 로그인한 다음 https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

  2. 역할을 선택한 다음 역할 생성을 선택합니다.

  3. AWS 서비스 역할 유형을 선택한 후 확장 모니터링을 위한 Amazon RDS 역할(Amazon RDS Role for Enhanced Monitoring) 서비스를 선택합니다. 다음을 선택합니다. 권한

  4. AmazonRDSEnhancedMonitoringRole, 권한 정책을 선택합니다.

  5. 다음을 선택합니다. Tags

  6. (선택 사항) 태그를 키-값 페어로 연결하여 메타데이터를 사용자에게 추가합니다. IAM에서의 태그 사용에 대한 자세한 정보는 태깅 IAM 사용자 및 역할 단원을 참조하십시오.

  7. 다음을 선택합니다. 검토

  8. 역할 이름에서 이 역할의 목적을 나타내는 역할 이름을 입력합니다. 역할 이름은 AWS 계정 내에서 고유해야 합니다. 대소문자는 구별하지 않습니다. 예를 들어, 두 역할 모두라는 역할을 작성할 수 없습니다. PRODROLEprodrole. 다양한 엔터티가 역할을 참조할 수 있으므로 역할 이름이 생성된 후에는 해당 역할의 이름을 편집할 수 없습니다.

  9. (선택 사항) [Role description]에 새 역할에 대한 설명을 입력합니다.

  10. 역할을 검토한 다음 [Create role]을 선택합니다.

그러면 역할이 monitoring.rds.amazonaws.com 서비스에 해당 역할을 수임할 권한을 부여하는 신뢰 정책을 자동으로 얻습니다. 그러면 Amazon RDS는 AmazonRDSEnhancedMonitoringRole 정책에서 허용하는 모든 작업을 수행할 수 있습니다.

사용자가 Enhanced Monitoring을 활성화하려면 이 사용자가 역할을 전달하도록 허용하는 다음과 같은 문이 포함된 정책이 필요합니다. 계정 번호를 사용하여 역할 이름을 3단계에서 입력한 이름으로 바꿉니다.

{ "Sid": "PolicyStatementToAllowUserToPassOneSpecificRole", "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam:::role/RDS-Monitoring-Role" }

이 문을 다른 정책의 문과 결합하거나 고유 정책에 포함시킬 수 있습니다. 사용자가 RDS-로 시작하는 모든 역할을 전달할 수 있도록 지정하려면 다음과 같이 리소스 ARN의 역할 이름을 와일드카드로 바꿉니다.

"Resource": "arn:aws:iam:::role/RDS-*"