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

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

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

사용자에게 역할로 전환할 수 있는 권한을 부여하려면 신뢰받는 계정의 관리자가 사용자를 위한 새 정책을 생성합니다. 또는 관리자가 기존 정책을 편집하여 필요한 요소를 추가할 수도 있습니다. 그런 다음 관리자는 역할 전환 페이지로 이동할 수 있는 링크를 세부 정보를 모두 채워서 사용자에게 보낼 수 있습니다. 그 밖에도 관리자는 계정 ID 번호나 역할 및 역할 이름을 포함하는 계정 별칭을 사용자에게 제공할 수 있습니다. 이제 사용자는 역할 전환 페이지로 이동하여 세부 정보를 직접 입력합니다. 사용자의 역할 전환 방법에 대한 세부 정보는 역할로 전환(콘솔)을 참조하세요.

IAM 사용자, SAML 페더레이션 역할 또는 웹 아이덴티티 페더레이션 역할로 로그인할 때만 역할을 전환할 수 있습니다. AWS 계정 루트 사용자로 로그인할 때는 역할을 바꿀 수 없습니다.

중요

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

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

  • AWS Management Console에서 역할을 전환하는 경우, 콘솔은 항상 원래 자격 증명을 사용하여 전환을 승인합니다. 이는 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:role/Test*" } }
참고

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

사용자에게 정보 제공

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

  • 역할의 이름

  • 해당 역할을 포함하는 계정의 ID 또는 별칭

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

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

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

사용자를 역할로 전환(콘솔) 섹션으로 안내하여 프로세스를 살펴볼 수 있도록 하는 것이 좋습니다. 역할을 수임할 때 발생할 수 있는 일반적인 문제를 해결하려면 역할을 수임할 수 없음 섹션을 참조하세요.

고려 사항

  • 프로그래밍 방식으로 역할을 생성하는 경우에는, 이름뿐 아니라 경로도 사용하여 역할을 생성할 수 있습니다. 이 경우 사용자에게 전체 경로와 역할 이름을 제공해야만 사용자가 AWS Management Console의 역할 전환 페이지에 입력할 수 있습니다. 예: division_abc/subdivision_efg/role_XYZ.

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

  • 보안을 위해 AWS CloudTrail 로그를 검토하여 AWS에서 누가 작업을 수행했는지 확인할 수 있습니다. 역할 신뢰 정책에서 sts:SourceIdentity 조건 키를 사용하여 사용자가 역할을 수임할 때 자격 증명을 지정하도록 요구할 수 있습니다. 예를 들어 IAM 사용자가 자신의 사용자 이름을 소스 자격 증명으로 지정하도록 요구할 수 있습니다. 이를 통해 AWS에서 특정 작업을 수행한 사용자를 확인할 수 있습니다. 자세한 정보는 sts:SourceIdentity을 참조하십시오. 역할 신뢰 정책에서 sts:RoleSessionName을 사용하여 사용자가 역할을 수임할 때 세션 이름을 지정하도록 요구할 수 있습니다. 이렇게 하면 여러 보안 주체가 한 역할을 사용할 때 역할 세션 간을 구분할 수 있습니다.