<예시>
커피숍의 모든 직원에게는 신분증이 있습니다. 아침에 출근하면 시스템에 로그인하여 출근 시간을 기록하고 금전 등록기를 사용하고 시스템을 관리하여 매일 커피숍을 운영합니다. 우리에게는 금전 등록기가 있으며 컴퓨터를 이용하여 모든 작업을 실행하죠. 각 직원은 자신의 신분을 기준으로 이러한 시스템에 액세스합니다.
Rudy는 금전 등록기에서 주문을 받으며 안쪽의 Blaine은 컴퓨터에서 재고 정보를 확인한다고 하면 그들은 서로 다른 로그인 자격 증명을 사용하고 서로 다른 권한 모음을 사용합니다. Rudy는 금전 등록기를 작동할 수 있지만 재고 시스템에 로그인하려고 하면 로그인이 허용되지 않을 것입니다.
<AWS 예시>
AWS 계정을 생성하면 루트 계정 사용자라는 자격이 부여됩니다. 루트 사용자는 AWS 계정의 소유자이며 해당 계정에서 원하는 일은 무엇이든 할 수 있습니다. 커피숍의 소유주가 되는 것과 같죠.
AWS 루트 사용자 자격이 있다면 계정에 있는 모든 리소스에 액세스하고 제어할 수 있습니다. 데이터베이스, EC2 인스턴스, 블록체인 서비스를 비롯해 말 그대로 원하는 것은 무엇이든 가동할 수 있습니다. 이 사용자는 권한이 막강하기 때문에 AWS 계정을 생성하는 즉시 루트 사용자로 로그인하고 Multi-Factor Authentication, 즉 MFA를 활성화하여 이메일과 비밀번호 뿐만 아니라 일회용 토큰까지 있어야 로그인할 수 있도록 하는 것이 좋습니다.
하지만 MFA를 활성화했다 하더라도 현실에서는 모든 작업에 루트 사용자 자격을 사용할 필요가 없습니다. 커피숍 소유주인 저는 제 액세스 수준을 모든 직원에게 제공하지는 않습니다. AWS Identity and Access Management, 즉 IAM을 사용하면 액세스를 세부적으로 제어할 수 있습니다.
Multi-Factor Authentication, MFA
신원을 확인하기 위해 여러 가지 정보를 제공하도록 요구하는 웹 사이트에 로그인한 적이 있습니까? 암호를 입력한 다음 휴대폰으로 전송된 난수 코드와 같은 두 번째 인증 형식을 제공해야 할 수도 있습니다. 이것이 Multi-Factor Authentication의 예입니다.
IAM에서 Multi-Factor Authentication(MFA)은 AWS 계정에 추가 보안 계층을 제공합니다.
AWS Identity and Access Management, IAM
IAM에서는 IAM 사용자를 만들 수 있습니다. 생성된 IAM 사용자는 기본적으로는 어떤 권한도 없습니다. 사용자는 처음에는 AWS 계정에 로그인할 수도 없습니다. 어떤 권한도 없으니까요. EC2 인스턴스를 시작할 수도 없고 S3 버킷을 만들지도 못하죠. 아무것도 할 수 없습니다. 해당 계정에서 작업하려면 여러분이 사용자 권한을 명시적으로 부여해야 합니다. 기본적으로 모든 작업이 거부된다는 점을 명심하세요. 사용자가 할 수 있는 작업을 여러분이 명시적으로 허용해야 합니다. 여러분은 사용자에게 필요한 곳에 대한 액세스 권한만 부여해야 합니다. 이 개념을 최소 권한 원칙이라고 합니다.
<IAM 정책>
최소 권한 원칙
권한을 부여하거나 거부하려면 IAM 정책이라고 하는 요소를 IAM 사용자에 연결해야 합니다. IAM 정책은 사용자가 할 수 있거나 할 수 없는 API 호출을 설명하는 JSON 문서입니다.
<IAM 그룹>
사용자와 사용자의 권한을 더 쉽게 관리하는 방법은 IAM 그룹으로 분류하는 것입니다. 그룹은 사용자 모음을 말합니다. 정책을 그룹에 연결하면 그룹의 모든 사용자가 해당 권한을 갖게 되죠. 커피숍에 계산원이 여러 명 있다면 금전 등록기에 대한 모든 액세스 권한을 개별적으로 부여하는 대신 모든 계산원에게 액세스 권한을 부여한 다음 개별 계산원을 그룹에 추가하면 됩니다. IAM에서의 그룹과 같은 개념이죠.
<IAM 역할>
-IAM 역할은 임시로 권한에 액세스하기 위해 수임할 수 있는 자격 증명입니다.
IAM에는 또 다른 중요 자격 증명이 있는데 이를 역할이라고 합니다.
책임과 액세스 권한은 가변적이며 매일 변경됩니다. 어제 시스템에서 재고 확인을 담당했다고 해서 항상 그 일을 담당할 필요는 없습니다. 직장에서 Blaine의 역할은 계속 바뀌며 일시적입니다.
AWS에서는 역할이라고 하는 자격 증명을 만들 수 있습니다.
역할에는 특정 작업을 허용하거나 거부하는 권한이 연결되어 있습니다. 그리고 이러한 역할은 일시적으로 할당할 수 있습니다. 사용자와 비슷하지만 사용자 이름과 암호가 없죠. 대신 역할은 맡으면 임시 권한을 이용할 수 있는 자격 증명입니다. 역할을 사용하면 AWS 리소스에 대한 액세스 권한을 <사용자, 외부 자격 증명, 애플리케이션, 심지어 다른 AWS 서비스>에도 부여할 수 있습니다. 역할을 맡으면 자격 증명은 모든 이전 권한을 폐기하고 해당 역할의 권한을 수임합니다.
사용자를 계정에 연동하면 조직 내 모든 구성원에 대한 IAM 사용자 생성을 방지할 수 있습니다. 회사 자격 증명을 IAM 역할에 매핑하면 구성원은 일반적인 회사 자격 증명으로 AWS에 로그인할 수 있다는 뜻이죠.
<정리>
IAM에는 사용자, 그룹, 역할, 정책이 있습니다.
사람과 애플리케이션이 AWS 서비스 및 리소스와 상호 작용할 수 있도록 사용자를 생성
사용자는 사용자 이름 및 암호를 사용하여 로그인하며 기본적으로 아무 권한이 없습니다.
그룹은 사용자의 모음입니다.
역할은 구성 가능한 시간 동안 임시 자격 증명 및 권한에 대한 액세스를 얻기 위해 수임할 수 있는 자격 증명입니다. 자격 증명에 사용 권한을 부여하려면 AWS에서 특정 작업을 명시적으로 허용 또는 거부하는 정책을 생성해야 합니다. IAM에서는 자격 증명 연동도 제공합니다. 기업 자격 증명 스토어가 이미 있는 경우 역할 기반 액세스를 사용하여 이러한 사용자를 AWS로 통합할 수 있습니다. 그러면 사용자가 회사 시스템과 AWS 모두에서 하나의 로그인 정보를 사용할 수 있습니다. IAM에서 마지막으로 기억할 요점은 사용자에게 Multi-Factor Authentication을 활성화해야 한다는 것입니다. 특히 루트 사용자의 경우 기본적으로 모든 권한을 가지고 제한할 수 없기 때문에 더욱 그렇습니다.
'AWS > 보안' 카테고리의 다른 글
AWS Shield, KMS, WAF, Inspector, GuardDuty (0) | 2022.04.25 |
---|---|
규정준수 (0) | 2022.04.25 |
AWS Organizations (0) | 2022.04.25 |
AWS 공동 책임 모델 (0) | 2022.04.25 |
댓글