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 섹션 단원을 참조하십시오.

예제 corp의 초기 설정

존은 예시 코퍼레이션(Example Corp.)의 설립자이다. 회사를 시작할 때 그는 자신만의 AWS 계정 및 사용 AWS 제품을 직접 구매해야 합니다. 이후 개발자와 관리자, 테스트 담당자, 관리자 및 시스템 관리자로 일할 직원들을 고용했습니다.

John은 AWS Management 콘솔을 사용하여 AWS 계정 루트 사용자 자격 증명으로 자신이 사용할 John이라는 계정과 Admins라는 그룹을 생성했습니다. 그는 AWS 관리형 정책 AdministratorAccess를 사용하여 Admins 그룹에 AWS 계정의 리소스에서 모든 작업을 수행할 수 있는 권한을 부여합니다. 그런 다음 John 사용자를 Admins 그룹에 추가했습니다. 이처럼 관리자 그룹과 IAM 사용자를 만든 후 이 사용자를 관리자 그룹에 추가하기 위한 단계별 지침은 첫 번째 생성 IAM 관리자 사용자 및 그룹 단원을 참조하십시오.

이제 John은 AWS와 상호 작용하는 데 루트 사용자의 자격 증명을 사용하는 대신 개인 사용자 계정의 자격 증명만 사용합니다.

John은 또한 AWS 계정 내 모든 사용자에게 계정 수준의 권한을 간편하게 적용할 수 있도록 AllUsers라는 그룹을 생성합니다. 그리고 자신도 이 그룹에 추가했습니다. 그런 다음 Developers, Testers, Managers, SysAdmins라고 하는 그룹을 각각 만들었습니다. 그리고 각 직원들에 대해 사용자 계정을 만들어 해당 그룹에 추가했습니다. 또한 모든 사용자를 AllUsers 그룹에도 추가했습니다. 그룹 생성에 대한 자세한 정보는 만들기 IAM 그룹 섹션을, 사용자 생성에 대한 자세한 정보는 생성 IAM 사용자 AWS 계정 단원을 참조하고, 사용자를 그룹에 추가하는 방법은 IAM 그룹 관리 단원을 참조하십시오.

사용 사례 IAM 및 Amazon EC2

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

Amazon EC2 그룹에 대한 권한

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

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

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

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

    참고

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

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

이러한 각 정책의 예를 보려면 예 IAM ID 기반 정책AWS에서 Linux 인스턴스용 Amazon EC2 사용 설명서 자격 증명 및 액세스 관리 사용을 참조하십시오.

사용자의 직무 변경

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

사용 사례 IAM 및 Amazon S3

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

다른 사용자 및 그룹 생성

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

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

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

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

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

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

  • 개발자 그룹을 위한 공유 디렉토리 액세스 – John은 개발자가 에 있는 모든 개체를 읽고, 쓰고, 나열할 수 있는 정책을 그룹에 첨부합니다. /aws-s3-bucket/share/developers/

  • 관리자 그룹에 대한 공유 디렉토리 액세스 – John은 관리자가 에서 개체를 읽고, 쓰고, 나열할 수 있는 정책을 그룹에 첨부합니다. /aws-s3-bucket/share/managers/

참고

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

이러한 각 정책의 예를 보려면 https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAuthAccess.html에서 Amazon Simple Storage Service 개발자 가이드액세스 제어를 참조하십시오. 런타임 시 정책이 어떻게 평가되는지 알아보려면 정책 평가 로직 단원을 참조하십시오.

사용자의 직무 변경

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

제3자 사업과의 통합

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

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