사용자에 대한 역할 전환 권한 부여 - AWS Identity and Access Management

사용자에 대한 역할 전환 권한 부여

관리자는 교차 계정 액세스에 대한 역할을 생성할 때 해당 역할 및 리소스(트러스팅 계정)를 소유하는 계정과 사용자를 포함한 계정(트러스티드 계정) 간에 트러스트를 설정합니다. 이를 위해 트러스팅 계정의 관리자가 역할의 트러스트 정책에서 트러스티드 계정 번호를 Principal로 지정합니다. 이렇게 하면 계정의 잠재적 사용자라면 누구든지 역할을 위임할 수 있습니다. 구성을 완료하려면 신뢰 받는 계정의 관리자는 계정에 속한 특정 그룹 또는 사용자에게 역할 전환 권한을 부여해야 합니다.

사용자에게 역할로 전환할 수 있는 권한을 부여하기 위해 트러스티드 계정의 관리자가 사용자에 대한 새 정책을 생성합니다. 또는 관리자가 기존 정책을 편집하여 필요한 요소를 추가할 수 있습니다. 그리고 사용자를 모든 세부 정보가 이미 채워져 있는 역할 전환 페이지로 연결하는 링크를 사용자에게 보낼 수 있습니다. 또는 관리자가 계정 ID 번호나 해당 역할 및 역할 이름이 포함된 계정 별칭을 사용자에게 제공할 수 있습니다. 이제 사용자는 Switch Role(역할 전환) 페이지로 이동하여 세부 정보를 직접 입력합니다. 사용자의 역할 전환 방법에 대한 세부 정보는 역할로 전환(콘솔)을 참조하십시오.

IAM 사용자로 로그인할 때만 역할을 바꿀 수 있다는 점에 유의하십시오. AWS 계정 루트 사용자로 로그인할 때는 역할을 바꿀 수 없습니다.

중요

AWS Management 콘솔에서의 역할을 ExternalId 값이 필요한 역할로 전환할 수 없습니다. ExternalId 파라미터를 지원하는 AssumeRole API를 호출해야만 이러한 역할로 변경할 수 있습니다.

참고
  • 이 주제는 사용자에 대한 정책들을 다루고 있는데, 이는 AWS가 사용자에게 작업을 완수할 수 있는 권한을 최종적으로 부여하고 있기 때문입니다. 그러나 개별 사용자에게 직접 권한을 부여하지 않는 것이 최상의 관행입니다. 관리를 더 쉽게 하려면 IAM 그룹에 정책을 배정하고 권한을 부여한 다음 적절한 그룹들의 구성원인 사용자들을 생성하도록 권장합니다.

  • AWS Management 콘솔에서 역할을 전환하는 경우, 콘솔은 항상 원래 자격 증명을 사용하여 전환을 승인합니다. 이는 IAM 사용자, SAML 연동 역할 또는 웹 자격 증명 연동 역할 중 어느 것으로 로그인하는지 여부에 관계없이 적용됩니다. 예를 들어, RoleA로 전환하는 경우 원래 사용자 자격 증명 또는 연동 역할 자격 증명을 사용하여 RoleA를 부여할지 여부를 결정합니다. RoleA를 사용하는 중에 RoleB로 전환하려는 경우, RoleA의 자격 증명이 아닌, 원래 사용자 또는 연동 역할 자격 증명이 인증에 사용됩니다.

정책 생성 또는 편집

역할을 맡기 위한 사용자 권한을 부여하는 정책에는 다음에 적용되는 Allow 문이 포함되어야 합니다.

  • sts:AssumeRole 작업

  • Resource 요소에 있는 역할의 ARN(Amazon Resource Name)

다음 예제를 참조하십시오. 그 정책을 가져오는(그룹 멤버십 또는 직접 첨부를 통해) 사용자들은 지정된 역할로 전환하도록 허용됩니다.

참고

Resource*로 설정된 경우, 사용자는 사용자의 계정을 신뢰하는 모든 계정에서 어떤 역할이든 수임할 수 있습니다. 즉, 역할의 트러스트 정책은 사용자의 계정을 Principal로 지정합니다. 최소 권한의 원칙에 따라 사용자에게 필요한 역할에 대해서만 완전한 ARN을 지정하는 것이 좋습니다.

다음 예제에서는 단 한 개의 계정에서 사용자가 역할을 맡을 수 있는 정책을 보여 줍니다. 또한 이 정책은 와일드카드(*)를 사용하여 역할 이름이 Test 문자로 시작할 경우에만 사용자가 역할을 전환할 수 있도록 지정합니다.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::ACCOUNT-ID-WITHOUT-HYPHENS:role/Test*" } }
참고

이 역할이 사용자에게 부여하는 권한은 사용자에게 이미 부여된 권한에 추가되지는 않습니다. 사용자가 어떤 역할로 전환할 때는 일시적으로 자신의 원래 권한을 버리고 그 역할이 부여하는 권한으로 갈아탑니다. 사용자가 역할을 끝내면 원래 사용자 권한이 자동으로 회복됩니다. 사용자 권한에서 Amazon EC2 인스턴스 작업을 허용하지만, 역할의 권한 정책이 해당 권한을 부여하지 않는 경우를 예로 들어 보겠습니다. 이 경우 역할을 사용할 때 사용자가 콘솔에서 Amazon EC2 인스턴스 작업을 수행할 수 없습니다. 또한 AssumeRole을 통해 받은 임시 자격 증명은 프로그래밍 방식으로 Amazon EC2 인스턴스 작업을 수행할 수 없습니다.

사용자에 대한 정보 제공

역할을 만들어 이 역할로 전환하는 권한을 사용자에게 부여한 후, 사용자에게 다음을 제공해야 합니다.

  • 역할의 이름

  • 역할이 포함된 계정의 ID 또는 별칭

계정 ID와 역할 이름이 미리 구성되어 있는 링크를 사용자에게 보내주는 것이 더 간편합니다. 이 역할 링크는 역할 생성 마법사의 마지막 페이지, 또는 교차 계정 역할의 Role Summary(역할 요약) 페이지에 있습니다.

다음 형식을 사용해 링크를 수동으로 구축할 수도 있습니다. 아래 예에서 계정 ID 또는 별칭과 역할 이름을 두 파라미터로 대체합니다.

https://signin.aws.amazon.com/switchrole?account=your_account_ID_or_alias&roleName=optional_path/role_name

사용자가 역할로 전환(콘솔)에서 프로세스를 살펴볼 수 있도록 기회를 제공하는 것이 좋습니다.

고려 사항

  • 프로그래밍 방식으로 역할을 생성하는 경우에는 이름뿐만 아니라 경로도 포함한 역할을 생성할 수 있습니다. 이렇게 하기 위해서는 AWS Management 콘솔의 역할 전환(Switch Role) 페이지에 입력할 수 있도록 사용자에게 전체 경로와 역할 이름을 제공해야 합니다. 예: division_abc/subdivision_efg/role_XYZ.

  • 프로그래밍 방식으로 역할을 생성하는 경우에는 RoleName 외에 Path(최대 512자)도 추가할 수 있습니다. 이름은 최대 64자일 수 있습니다. 그러나 AWS Management 콘솔에서 역할 전환 기능이 있는 역할을 사용하려면 PathRoleName을 조합한 문자가 64자를 초과할 수 없습니다.

  • 보안을 위해 AWS CloudTrail 로그를 검토하여 AWS에서 누가 작업을 수행했는지 확인할 수 있습니다. 역할 신뢰 정책에서 aws:RoleSessionName 조건 키를 사용하여 사용자가 역할을 수임할 때 세션 이름을 지정하도록 요구할 수 있습니다. 예를 들어 IAM 사용자가 자신의 사용자 이름을 세션 이름으로 지정하도록 요구할 수 있습니다. 자세한 내용은 aws:RoleSessionName 단원을 참조하십시오.