IAM 역할로 전환(Tools for Windows PowerShell) - AWS Identity and Access Management

IAM 역할로 전환(Tools for Windows PowerShell)

역할은 필요한 AWS 리소스에 액세스하는 데 사용할 수 있는 일련의 권한을 지정합니다. 이러한 면에서 AWS Identity and Access Management(IAM)의 사용자와 비슷합니다. 사용자로 로그인할 때는 특정 권한이 부여됩니다. 하지만 역할로 로그인하지는 못하기 때문에 일단 로그인한 후에 역할로 전환할 수 있습니다. 이 경우 초기의 사용자 권한은 잠시 무효화되고 역할에게 할당된 권한이 부여됩니다. 역할은 자신의 계정 또는 그 밖의 다른 AWS 계정에 속한 것일 수 있습니다. 역할과 역할의 이점, 역할 생성 및 구성 방법에 대한 자세한 내용은 IAM 역할IAM 역할 생성 섹션을 참조하세요.

중요

IAM 사용자의 권한과 전환 대상인 역할의 권한은 누적되지 않습니다. 한 번에 오직 하나의 권한 집합만이 활성화됩니다. 어떤 역할로 전환할 때 사용자 권한은 일시적으로 포기하고 역할에 할당된 권한을 가지고 작업합니다. 역할을 끝내면 사용자 권한이 자동으로 회복됩니다.

이 섹션에서는 AWS Tools for Windows PowerShell에서 명령줄로 작업할 때 역할을 전환하는 방법에 대해 기술합니다.

개발 환경에서 계정을 하나 갖고 있는데 이따금 명령줄에서 Tools for Windows PowerShell을 사용하여 프로덕션 환경으로 작업해야 할 때가 있다고 가정합시다. 사용할 수 있는 액세스 키 자격 증명 세트가 이미 하나 있습니다. 이 세트는 표준 IAM 사용자에게 할당된 액세스 키 페어일 수도 있고, 페더레이션 사용자로 로그인한 경우에는 초기에 할당된 역할에 대한 액세스 키 페어일 수도 있습니다. 이 자격 증명을 사용해 새 역할의 ARN을 파라미터로 전달하는 Use-STSRole cmdlet을 실행할 수 있습니다. 해당 명령은 요청된 역할에 대한 임시 보안 자격 증명을 반환합니다. 그런 다음 생산 중인 리소스에 액세스할 수 있는 해당 역할의 권한으로 후속 PowerShell 명령에서 이 자격 증명을 사용할 수 있습니다. 한 번에 한 가지 권한 세트만 적용되기 때문에 해당 역할을 사용하는 동안에는 개발 계정의 사용자 권한을 사용할 수 없습니다.

참고

보안을 위해 관리자는 AWS CloudTrail 로그를 검토하여 AWS에서 누가 작업을 수행했는지 확인할 수 있습니다. 관리자는 사용자가 역할을 수임할 때 소스 자격 증명이나 역할 세션 이름을 지정하도록 요구할 수 있습니다. 자세한 정보는 sts:SourceIdentitysts:RoleSessionName 섹션을 참조하세요.

모든 액세스 키와 토큰은 예제일 뿐이며 표시된 대로 사용할 수 없습니다. 라이브 환경의 적절한 값으로 바꾸세요.

역할로 전환하려면(Tools for Windows PowerShell)
  1. PowerShell 명령 프롬프트를 열고 현재 IAM 사용자 또는 페더레이션 역할의 액세스 키를 사용하도록 기본 프로필을 구성합니다. 이전에 Tools for Windows PowerShell을 사용했다면 이미 그렇게 했을 가능성이 큽니다. AWS 계정 루트 사용자가 아닌 IAM 사용자로 로그인한 경우에 한해 역할을 바꿀 수 있다는 것에 유의하십시오.

    PS C:\> Set-AWSCredentials -AccessKey AKIAIOSFODNN7EXAMPLE -SecretKey wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY -StoreAs MyMainUserProfile PS C:\> Initialize-AWSDefaults -ProfileName MyMainUserProfile -Region us-east-2

    자세한 내용은 AWS Tools for Windows PowerShell 사용 설명서에서 AWS 자격 증명 사용을 참조하세요.

  2. 새 역할에 대한 자격 증명을 가져오려면, 다음 명령을 실행하여 123456789012 계정의 RoleName 역할로 전환합니다. 해당 역할을 만든 계정 관리자에게서 역할 ARN을 받습니다. 그 명령은 세션 이름도 제공할 것을 요구합니다. 세션 이름에 대해서는 어떤 텍스트도 선택 가능합니다. 다음 명령은 자격 증명을 요청한 다음, 반환된 결과 객체로부터 Credentials 속성 객체를 캡쳐해 $Creds 변수에 저장합니다.

    PS C:\> $Creds = (Use-STSRole -RoleArn "arn:aws:iam::123456789012:role/RoleName" -RoleSessionName "MyRoleSessionName").Credentials

    $Creds는 다음 절차에서 필요한 AccessKeyId, SecretAccessKeySessionToken 요소를 포함하는 객체입니다. 다음 샘플 명령은 전형적인 값을 보여줍니다.

    PS C:\> $Creds.AccessKeyId AKIAIOSFODNN7EXAMPLE PS C:\> $Creds.SecretAccessKey wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY PS C:\> $Creds.SessionToken AQoDYXdzEGcaEXAMPLE2gsYULo+Im5ZEXAMPLEeYjs1M2FUIgIJx9tQqNMBEXAMPLECvSRyh0FW7jEXAMPLEW+vE/7s1HRp XviG7b+qYf4nD00EXAMPLEmj4wxS04L/uZEXAMPLECihzFB5lTYLto9dyBgSDyEXAMPLE9/g7QRUhZp4bqbEXAMPLENwGPy Oj59pFA4lNKCIkVgkREXAMPLEjlzxQ7y52gekeVEXAMPLEDiB9ST3UuysgsKdEXAMPLE1TVastU1A0SKFEXAMPLEiywCC/C s8EXAMPLEpZgOs+6hz4AP4KEXAMPLERbASP+4eZScEXAMPLEsnf87eNhyDHq6ikBQ== PS C:\> $Creds.Expiration Thursday, June 18, 2018 2:28:31 PM
  3. 후속 명령에 대해 이 자격 증명을 사용하려면 -Credential 파라미터로 자격 증명을 포함시키세요. 예를 들어 다음 명령은 그 역할에 iam:ListRoles 권한이 부여되고, 따라서 Get-IAMRoles cmdlet을 실행할 수 있는 경우에 한해 역할에서 얻은 자격 증명을 사용하고 작동됩니다.

    PS C:\> get-iamroles -Credential $Creds
  4. 원래 자격 증명으로 돌아가려면 -Credentials $Creds 파라미터 사용을 중지하고 PowerShell이 기본 프로필에 저장된 자격 증명으로 복귀할 수 있도록 허용하기만 하면 됩니다.