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

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

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

역할로 전환할 수 있는 권한을 부여하려면 다음을 수행하세요.
  1. 신뢰할 수 있는 계정의 관리자로서 사용자에 대한 새 정책을 생성하거나 기존 정책을 편집하여 필요한 요소를 추가합니다. 자세한 내용은 정책 생성 또는 편집 섹션을 참조하세요.

  2. 그런 다음 역할 정보를 공유할 방법을 선택합니다.

    • Role link(역할 링크): 이미 세부 정보가 모두 작성되어 있는 Switch Role(역할 전환) 페이지로 이동하는 링크를 사용자에게 보냅니다.

    • Account ID or alias(계정 ID 또는 별칭): 각 사용자에게 계정 ID 번호나 계정 별칭과 함께 역할 이름을 제공합니다. 이제 사용자는 역할 전환 페이지로 이동하여 세부 정보를 직접 입력합니다.

    자세한 내용은 사용자에게 정보 제공 섹션을 참조하세요.

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

중요

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

주의
  • 이 주제에서는 최종적으로 사용자에게 태스크를 수행할 수 있는 권한을 부여하기 때문에 사용자에 대한 정책에 대해 설명합니다. 그러나 개별 사용자에게 직접 권한을 부여하지 않는 것이 좋습니다. 사용자가 역할을 수임하면 해당 역할과 관련된 권한이 할당됩니다.

  • AWS Management Console에서 역할을 전환하는 경우, 콘솔은 항상 원래 자격 증명을 사용하여 전환을 승인합니다. 이는 IAM 사용자, SAML 페더레이션 역할 또는 웹 자격 증명 페더레이션 역할 중 어느 것으로 로그인하는지 여부에 관계없이 적용됩니다. 예를 들어, RoleA로 전환하는 경우 IAM에서는 원래 사용자 보안 인증 또는 페더레이션 역할 보안 인증을 사용하여 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.

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

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