IAM에 대한 기업 사용 사례 - AWS Identity and Access Management

IAM에 대한 기업 사용 사례

IAM의 간단한 기업 사용 사례를 통해 사용자의 AWS 액세스 권한을 제어하기 위한 서비스 구현의 기본적인 방법을 이해할 수 있습니다. 사용 사례는 일반적인 용어로 서술되며 원하는 결과를 달성하기 위해 IAM API를 사용하는 방법에 대한 기술적인 내용을 다루지 않습니다.

이 사용 사례에서는 Example Corp라는 가상의 회사가 IAM을 사용하는 2가지 일반적인 방법에 대해 살펴보겠습니다. 첫 번째 시나리오는 Amazon Elastic Compute Cloud(Amazon EC2)를 고려합니다. 두 번째는 Amazon Simple Storage Service(Amazon S3)를 고려합니다.

다른 AWS 서비스와 함께 IAM을 사용하는 방법에 대한 자세한 정보는 AWS IAM으로 작업하는 서비스 섹션 섹션을 참조하세요.

Example Corp의 초기 설정

Nikki Wolf와 Mateo Jackson은 Example Corp의 창립자입니다. 회사를 시작할 때 그들은 AWS 계정을 생성하고 AWS IAM Identity Center(IAM Identity Center)를 설정하여 AWS 리소스와 함께 사용할 관리 계정을 생성합니다. 관리 사용자에 대한 계정 액세스를 설정하면 IAM Identity Center에서 해당 IAM 역할을 생성합니다. IAM Identity Center에서 제어하는 이 역할은 관련 AWS 계정에 생성되며 AdministratorAccess 권한 세트에 지정된 정책이 역할에 연결됩니다.

이제 관리자 계정이 있으므로 Nikki와 Mateo는 더 이상 루트 사용자를 사용하여 AWS 계정에 액세스할 필요가 없습니다. 이들은 루트 사용자만 수행할 수 있는 태스크를 완료하는 데 루트 사용자만 사용할 계획입니다. 보안 모범 사례를 검토한 후 루트 사용자 보안 인증에 대한 다중 인증(MFA)을 구성하고 루트 사용자 보안 인증을 보호하는 방법을 결정합니다.

회사가 성장함에 따라 개발자, 관리자, 테스터, 관리자 및 시스템 관리자로 일할 직원을 고용합니다. Nikki는 운영을 담당하고 Mateo는 엔지니어링 팀을 관리합니다. 이들은 Active Directory 도메인 서버를 설정하여 직원 계정과 회사 내부 리소스에 대한 액세스를 관리합니다.

직원에게 AWS 리소스에 대한 액세스 권한을 부여하기 위해 IAM Identity Center를 사용하여 회사의 Active Directory를 AWS 계정에 연결합니다.

Active Directory를 IAM Identity Center에 연결했기 때문에 사용자, 그룹 및 그룹 멤버십이 동기화되고 정의됩니다. AWS 리소스에 대한 올바른 수준의 액세스 권한을 사용자에게 부여하기 위해 서로 다른 그룹에 권한 세트와 역할을 할당해야 합니다. 이들은 AWS Management Console에서 직무에 관한 AWS 관리형 정책을 사용하여 다음과 같은 권한 세트를 생성합니다.

  • 관리자

  • 결제

  • 개발자

  • 네트워크 관리자

  • 데이터베이스 관리자

  • 시스템 관리자

  • 지원 사용자

그런 다음 이러한 권한 세트를 Active Directory 그룹에 할당된 역할에 할당합니다.

IAM Identity Center의 초기 구성을 설명하는 단계별 가이드는 AWS IAM Identity Center 사용 설명서Getting started(시작하기)를 참조하세요. IAM Identity Center 사용자 액세스 권한 프로비저닝에 대한 자세한 내용은 AWS IAM Identity Center 사용 설명서Single sign-on access to AWS accounts(AWS 계정에 대한 Single Sign-On 액세스)를 참조하세요.

Amazon EC2에서의 IAM 사용 사례

Example Corp와 같은 회사는 일반적으로 IAM을 사용하여 Amazon EC2와 같은 서비스와 상호 작용합니다. 이 부분의 사용 사례를 이해하기 위해서는 Amazon EC2에 대한 기본적인 지식이 필요합니다. Amazon EC2에 대한 자세한 내용은 Linux 인스턴스용 Amazon EC2 사용 설명서를 참조하세요.

그룹에 대한 Amazon EC2 권한

'경계' 제어를 제공하기 위해 Nikki는 정책을 AllUsers 사용자 그룹에 연결합니다. 이 정책은 Example Corp 회사 네트워크의 IP 주소가 아닌 주소에서 시작된 모든 사용자의 AWS 요청을 거부합니다.

Example Corp는 다음과 같이 사용자 그룹에 따라 서로 다른 권한을 부여했습니다.

  • 시스템 관리자 - AMI, 인스턴스, 스냅샷, 볼륨, 보안 그룹 등을 생성하고 관리하기 위한 권한이 필요합니다. Nikki는 그룹 멤버에게 모든 Amazon EC2 작업을 사용할 수 있는 권한을 부여하는 AmazonEC2FullAccess AWS 관리형 정책을 SysAdmins 사용자 그룹에 연결합니다.

  • 개발자 - 인스턴스를 사용한 작업 권한만 필요합니다. 따라서 Mateo는 개발자가 DescribeInstances, RunInstances, StopInstances, StartInstances, TerminateInstances를 호출할 수 있는 권한을 부여하는 정책을 생성하고 Developers 사용자 그룹에 연결합니다.

    참고

    Amazon EC2는 SSH 키, Windows 암호 및 보안 그룹을 사용하여 특정 Amazon EC2 인스턴스의 운영 체제에 액세스할 사용자를 제어합니다. IAM 시스템에서는 특정 인스턴스의 운영 체제 액세스를 허용 또는 거부할 방법을 제공하지 않습니다.

  • 지원 사용자 - 현재 제공되고 있는 Amazon EC2 리소스를 나열하는 것 외에는 어떤 Amazon EC2 작업도 수행할 필요가 없습니다. 따라서 Nikki는 Amazon EC2 'Describe' API 작업만 호출할 수 있는 권한을 부여하는 정책을 생성하고 지원 그룹에 연결합니다.

이러한 각 정책의 예를 보려면 IAM 자격 증명 기반 정책의 예Linux 인스턴스용 Amazon EC2 사용 설명서에서 AWS Identity and Access Management를 참조하세요.

사용자의 직무 변경

그러다가 개발자 중 한 명인 Paulo Santos가 직무를 바꾸어 관리자가 되었습니다. 관리자로서 Paulo는 개발자를 위한 지원 사례를 열 수 있도록 Support users 그룹의 일원이 됩니다. Mateo은 Paulo를 Developers 사용자 그룹에서 관리자 사용자 그룹으로 옮겼습니다. 이로 인해 Amazon EC2 인스턴스와 상호 작용하는 기능이 제한됩니다. 즉, 인스턴스를 실행하거나 시작할 수 없으며, 이전에 자신이 시작한 인스턴스일지라도 더 이상 기존 인스턴스를 중지하거나 종료할 수 없습니다. Example Corp 사용자가 시작한 인스턴스를 나열할 수만 있습니다.

Amazon S3에서의 IAM의 사용 사례

Example Corp와 같은 회사는 또한 기본적으로 IAM과 함께 Amazon S3를 사용합니다. John은 aws-s3-bucket이라는 회사용 Amazon S3 버킷을 생성했습니다.

추가 사용자와 사용자 그룹 생성

직원인 Zhang Wei와 Mary Major는 모두 회사의 버킷에 데이터를 생성할 수 있어야 합니다. 또한 개발자들이 작업 중인 공유 데이터를 읽고 쓸 수 있어야 합니다. 이를 위해 Mateo는 다음 그림과 같은 Amazon S3 키 접두사 체계에 따라 aws-s3-bucket의 데이터에 대한 논리적 구조를 정했습니다.

/aws-s3-bucket /home /zhang /major /share /developers /managers

Mateo는 /aws-s3-bucket을 각 직원별 홈 디렉터리, 그리고 개발자와 관리자의 그룹에서 함께 공유하는 영역으로 나누었습니다.

그런 다음 Mateo는 다음과 같이 사용자와 사용자 그룹에 대해 권한을 부여하는 정책의 조합을 생성했습니다.

  • Zhang의 홈 디렉터리 액세스 - Mateo는 Wei에게 Amazon S3 키 접두사 로 객체에 대해 읽기, 쓰기 및 나열 권한을 부여하는 정책을 연결했습니다. /aws-s3-bucket/home/zhang/

  • Major의 홈 디렉터리 액세스 - Mateo는 Mary에게 Amazon S3 키 접두사 로 객체에 대해 읽기, 쓰기 및 나열 권한을 부여하는 정책을 연결했습니다. /aws-s3-bucket/home/major/

  • Developers 사용자 그룹에 대한 공유 디렉터리 액세스 - Mateo는 개발자에게 /aws-s3-bucket/share/developers/ 키 접두사로 객체에 대해 읽기, 쓰기 및 나열 권한을 부여하는 정책을 사용자 그룹에 연결했습니다.

  • Managers 사용자 그룹에 대한 공유 디렉터리 액세스 - Mateo는 관리자에게 /aws-s3-bucket/share/managers/ 키 접두사로 객체에 대해 읽기, 쓰기 및 나열 권한을 부여하는 정책을 사용자 그룹에 연결했습니다.

참고

Amazon S3는 버킷 또는 객체를 만든 사용자에게 해당 버킷 또는 객체에 대해 자동으로 다른 작업을 수행할 권한을 부여하지 않습니다. 따라서 IAM 정책에서 명시적으로 사용자에게 사용자가 생성한 Amazon S3 리소스를 사용할 권한을 부여해야 합니다.

이러한 각 정책의 예를 보려면 Amazon Simple Storage Service 사용 설명서액세스 제어를 참조하세요. 런타임 시 정책이 어떻게 평가되는지 알아보려면 정책 평가 로직 섹션을 참조하세요.

사용자의 직무 변경

그러다가 개발자 중 한 명인 Zhang Wei가 직무를 바꾸어 관리자가 되었습니다. 따라서 더 이상 share/developers 디렉터리의 문서에 액세스할 필요가 없으므로 관리자인 Mateo는 Wei를 Managers 사용자 그룹에서 Developers 사용자 그룹으로 옮겼습니다. 이처럼 간단한 재할당만으로 Managers 사용자 그룹에 허가된 모든 권한이 자동으로 Wei에게 부여되고, 더 이상 share/developers 디렉터리의 데이터에서는 액세스하지 못하게 됩니다.

서드 파티 기업과 통합

기업은 종종 파트너 업체와 컨설턴트, 계약자들과 작업합니다. Example Corp는 Widget Company라는 파트너가 있으며, 이 Widget Company의 직원인 Shirley Rodriguez에게 Example Corp에서 사용하는 버킷에 데이터를 추가할 권한을 부여해야 합니다. Nikki는 WidgetCo라는 사용자 그룹과 Shirley라는 사용자를 생성하고 Shirley를 WidgetCo 사용자 그룹에 추가했습니다. Nikki는 또한 Shirley가 사용할 수 있는 aws-s3-bucket1이라는 특수 버킷을 만듭니다.

Nikki는 기존 정책을 업데이트하거나 새 정책을 추가하여 Widget Company 파트너에게 적절한 권한을 부여할 수 있습니다. 예를 들어 Nikki는 WidgetCo 사용자 그룹의 멤버에게는 쓰기 이외의 모든 작업을 사용할 권한을 거부하는 새 정책을 생성할 수 있습니다. 모든 사용자에게 광범위한 Amazon S3 작업에 대해 액세스 권한을 부여하는 정책이 있을 경우에만 이 정책이 필요합니다.