AWS STS 가정 역할 권한을 활용하여 AWS 관리

당신의 조직이 성장함에 따라 AWS 리소스에 대한 액세스를 관리하는 데 어려움을 겪고 있나요? 걱정 마세요! AWS Security Token Service (STS)가 여기 있어 도움을 줄 것입니다.

AWS STS 역할 권한을 가정하면 장기 자격 증명이 필요하지 않고 사용자 및 응용 프로그램에 대한 AWS 리소스에 일시적으로 액세스 권한을 부여할 수 있습니다. 그리고 이 튜토리얼에서는 리소스를 더 효율적으로 관리하면서 안전하게 유지하는 방법을 배우게 될 것입니다.

계속 읽어보고 AWS 인프라 및 리소스를 완전히 제어하세요!

전제 조건

이 튜토리얼은 실습을 중심으로 합니다. 따라가려면 활성화된 빌링이 있는 AWS 계정이 있어야 하지만 무료 티어 계정으로도 충분합니다.

제로 액세스를 갖는 IAM 사용자 만들기

AWS STS 역할 가정 권한을 사용하려면 먼저 권한이없는 IAM 사용자를 만들어야 합니다. IAM 사용자는 역할을 직접 가정할 수 없기 때문에 이 작업은 역할을 통해 AWS STS 서비스를 통해 일시적인 보안 자격 증명을 먼저 획득해야 합니다.

권한이없는 IAM 사용자를 만들려면 다음 단계를 따르십시오:

1. 좋아하는 웹 브라우저를 열고 루트 AWS 계정으로 AWS 관리 콘솔에 로그인합니다.

2. 다음으로, 서비스 목록에서 IAM을 검색하고 선택하여 IAM 콘솔에 액세스합니다.

Accessing the IAM console

3. IAM 콘솔에서 사용자(왼쪽 창)로 이동하고 새 사용자 추가를 클릭하여 새 사용자를 추가합니다.

Initiating adding a new user

4. 이제 아래 사용자 세부 정보를 구성합니다. 이 작업을 통해 IAM 사용자가 사용자 이름과 암호로 AWS 관리 콘솔에 로그인할 수 있습니다.

  • 사용자 이름 – 새 사용자의 이름을 제공하고 아래 확인란을 선택하여 AWS 관리 콘솔에 사용자 액세스를 제공합니다.
  • IAM 사용자를 만드는 경우 IAM 사용자를 만들기 위해 IAM 사용자 옵션을 선택합니다.
  • 콘솔 암호 – 암호 생성 옵션을 선택하여 나중에 변경할 수 있는 암호를 생성합니다.

구성을 완료하면 다음을 클릭하여 IAM 사용자 생성을 계속합니다.

Configuring the user details

5. 다음 페이지에서 기본값을 그대로 두고 다음을 클릭하여 사용자 권한 설정을 건너뜁니다.

이 사용자에게 권한을 할당할 필요가 없습니다. 왜냐하면 권한이 없고 AWS 관리 콘솔에 액세스하는 사용자를 만들기 때문입니다.

권한이 없으면 사용자가 필요한 권한을 부여하는 역할을 취할 때까지 조치를 취할 수 없습니다.

Skipping setting permissions

6. 구성된 사용자 세부 정보를 검토한 후 IAM 사용자 생성을 완료하기 위해 사용자 생성을 클릭합니다.

Finalizing creating the new IAM user

7. IAM 사용자의 로그인 URL과 비밀번호를 복사하여 저장하세요. IAM 사용자로 로그인할 때 이 정보가 필요합니다.

Taking note of the IAM user’s sign-in URL and password

8. 이제 IAM 콘솔로 돌아가서 사용자 페이지(왼쪽 창)로 이동하고, 새로 생성한 사용자의 이름을 클릭하여 해당 요약 페이지에 액세스하세요.

Accessing the newly-created user’s summary page

9. 마지막으로 요약 페이지에서 사용자의 Amazon Resource Name (ARN)인 사용자의 고유 식별자를 메모하세요. 사용자에게 역할을 할당할 때 이 ARN이 필요합니다.

Noting down the newly-created user’s ARN

사용자 정의 신뢰 정책 준비

전용 IAM 사용자를 만들었으므로 AWS 리소스에 액세스할 수 있는 역할을 가정할 준비가 되었습니다. 그러나 IAM 사용자가 역할을 가정하려면 역할이 먼저 사용자를 신뢰해야 합니다.

사용자 정의 신뢰 정책을 만들면 IAM 사용자와 역할 간에 “신뢰 관계”를 설정할 수 있습니다. 이 신뢰 관계는 어떤 사용자나 계정이 역할을 가정할 수 있는지 및 어떤 조건 하에 가정할 수 있는지를 지정합니다.

사용자 정의 신뢰 정책을 준비하려면 다음 단계를 따르세요:

1. IAM 콘솔에서 역할(왼쪽 창)로 이동하고, 새 역할을 만들기 위해 역할 생성을 클릭하세요.

Initiating creating a new role

2. 그런 다음 사용자 정의 신뢰 정책 옵션을 클릭하여 사용자 정의 정책을 만듭니다.

Choosing to create a custom trust policy

3. 아래에 표시된 대로 텍스트 필드에 다음 정책을 입력하고 다음을 클릭하세요. “IAM 사용자의 제로 액세스로 IAM 사용자 생성” 섹션의 마지막 단계에서 메모한 IAM 사용자의 ARN을 YOUR_ARN으로 대체하세요.

다음은 지정된 IAM 사용자 또는 역할이 특정 IAM 역할을 가정할 수 있는 사용자 정의 신뢰 정책의 기본 예입니다:

Field Function
Version Specifies the version of the policy language.
Statement Contains the policy statement(s).
Effect Specifies whether the statement allows or denies access, with Allow, in this case, granting access.
Principal Specifies the entity allowed to assume the role; in this example, it is an empty string.
Action Specifies the action the IAM user or role is allowed to perform. The sts:AssumeRole value allows the user to assume the specified IAM role.
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
               "AWS": "YOUR_ARN"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
Creating a custom trust policy

4. 다음 페이지에서 나타나는 정책 목록에서 AmazonEC2FullAccess를 검색하고 선택한 후 다음을 클릭하십시오. 이 정책은 모든 EC2 리소스에 대한 완전한 액세스를 부여합니다.

Selecting the AmazonEC2FullAccess policy

5. 사용자 정의 신뢰 정책에 이름을 지정하고(i.e., AWSEC2FULLACCESS).

provide a name for your custom trust policy

6. 다른 설정을 그대로 유지한 채로 역할 생성을 완료하려면 역할 생성을 클릭하십시오.

이 시점에서 역할은 IAM(sts_user)에 의해 가정될 수 있어야 합니다. 가정된 경우 사용자는 EC2 리소스의 모든 액세스 권한을 갖게 되며, EC2 인스턴스 목록, 생성, 삭제 등이 가능합니다.

Creating the new role

7. 아래에 표시된 대로 새로 생성한 역할을 클릭하여 해당 세부 정보를 볼 수 있습니다.

Accessing the role’s details

8. 마지막으로, 콘솔에서 역할을 전환하는 링크를 복사하여 저장하십시오. IAM 사용자(sts_user)로 로그인하여 콘솔에서 역할을 전환할 때 이 링크가 필요합니다.

Copying the link to switch roles in the console

IAM 사용자와 역할 전환 및 가정하기

역할을 만든 후에는 전용 IAM 사용자로 역할을 가정할 수 있습니다. IAM 사용자로 AWS 콘솔에 로그인하여 만든 역할로 전환하여 EC2 액세스를 테스트할 수 있습니다.

IAM 사용자와 역할 전환 및 가정하는 방법을 자세히 알아보려면:

1. “IAM 사용자의 비밀번호로 로그인하고 ‘IAM 사용자의 제로 액세스로 IAM 사용자 생성하기’ 섹션에서 7단계에 메모한 로그인 URL로 이동하십시오.

?루트 계정과의 충돌을 피하기 위해 다른 브라우저나 시크릿 창을 사용하여 로그인하십시오.

Logging into the AWS Management Console with the IAM user

2. 로그인한 후 EC2 콘솔로 이동하면 아래와 같이 많은 API 오류가 빨간색으로 표시됩니다. 이러한 오류는 IAM 사용자가 EC2 리소스에 액세스할 수 있는 권한이 없음을 나타냅니다.

이러한 오류를 해결하려면 다음 단계에서 모든 EC2 리소스(AWSEC2FULLACCESS)에 액세스할 수 있는 역할을 가정해야 합니다. AWS에서 역할을 가정하면 해당 역할과 관련된 권한을 일시적으로 부여받게 됩니다.

Getting errors due to lack of permissions

3. 새 브라우저 탭을 열고 ‘사용자 정의 신뢰 정책 준비’ 섹션의 마지막 단계에 메모한 ‘역할 전환 링크’로 이동하십시오.

이 링크는 AWS Management Console의 스위치 역할 페이지로 바로 이동하는 특별한 URL입니다. 스위치 역할 페이지를 통해 다른 역할을 가정할 수 있으며 이는 AWS 리소스에 액세스할 수 있는 권한 집합을 결정합니다.

4. 이제 세션에 대한 설명적인 표시 이름을 제공하고 ‘역할 전환’을 클릭하여 역할을 가정하십시오. 표시 이름을 통해 활성 세션을 추적할 수 있습니다.

역할을 가정한 후 브라우저가 선택한 역할의 권한으로 AWS Management Console로 리디렉션됩니다.

Switching roles

5. IAM 사용자가 EC2 리소스에 액세스할 수 있는지 확인하기 위해 다시 EC2 콘솔로 이동하십시오.”

만약 모든 것이 잘 진행된다면, 더 이상 이전에 보았던 API 오류를 볼 수 없을 것입니다. 왜냐하면 현재 역할 권한으로 로그인되었으므로 EC2 리소스에 액세스할 수 있는 권한을 포함하여 이전에 보았던 오류가 사라졌기 때문입니다.

Confirming the IAM user has been successfully granted access to EC2 resources

6. 마지막으로 세션의 표시 이름(오른쪽 상단)을 클릭하고 전환을 선택하여 원래의 IAM 사용자로 전환합니다.

현재 세션이 로그아웃되고 원래의 IAM 사용자로 로그인되며 해당 권한 집합으로 작업합니다. 이 작업은 의도하지 않은 작업을 실수로 수행하는 위험을 줄이기 위한 최선의 실천입니다.

Switching back to the original IAM user

결론

AWS에서 역할을 가정하는 것은 자격 증명을 영구적으로 공유하지 않고 리소스에 대한 임시 액세스를 부여할 수 있는 강력한 기능입니다. 그리고 이 튜토리얼을 통해 AWS STS assume role 권한을 활용하는 방법을 배웠습니다.

이 시점에서 제한된 권한을 가진 역할을 확신하고 리소스의 보안을 보장하며 의도치 않은 또는 악의적인 작업의 잠재적인 영향을 최소화할 수 있습니다.

AWS 관리 콘솔은 AWS 서비스를 사용하기에 훌륭한 방법입니다. 그러나 왜 AWS 명령줄 인터페이스 (CLI)를 통해 역할을 가정해 보지 않으려고 하지 않을까요? AWS CLI를 탐험하고 자동화 스크립트에 통합하면 더 고급 기능과 기능을 제공할 수 있습니다.

Source:
https://adamtheautomator.com/aws-sts-assume-role/