Skip to content

사용자


AWS Identity and Access Management(IAM) 사용자는 AWS에서 생성하는 엔터티로서 AWS와 상호 작용하기 위해 해당 엔터티를 사용하는 사람 또는 애플리케이션을 나타낸다. AWS에서 사용자는 이름과 크레덴셜으로 구성된다.

관리자 권한이 있는 IAM 사용자는 AWS 계정 루트 사용자와 같은 것이 아니다.

주제


1. AWS가 IAM 사용자를 식별하는 방법

사용자를 생성하면 IAM은 해당 사용자를 식별하는 다음과 같은 방법을 생성한다.

  • 사용자 생성시 지정한 이름으로서 Richard 또는 Anaya와 같은 사용자가 "쉽게 알 수 있는 이름"이다. 이 이름들은 AWS Management Console에서 볼 수 있다.

  • 사용자의 Amazon 리소스 이름(ARN)이다. 모든 AWS 전반에 사용자를 특별하게 식별할 필요가 있는 경우 ARN을 사용한다. 예를 들어, ARN을 사용하여 사용자를 Amazon S3 버킷의 IAM 정책에서 Principal로 지정할 수 있다. IAM 사용자의 ARN은 다음과 같을 수 있다.

    arn:aws:iam::account-ID-without-hyphens:user/Richard

  • 사용자의 고유 식별자이다. 이 ID는 사용자를 생성하기 위해 API, Tools for Windows PowerShell 또는 AWS CLI를 사용할 때만 반환된다. 콘솔에서는 이 ID를 볼 수 없다.


2. 사용자 및 크레덴셜

AWS는 사용자 크레덴셜에 따라 다양한 방법으로 액세스할 수 있다.

  • 콘솔 암호: 사용자가 입력해 AWS Management Console과 같은 상호 작용 세션으로 로그인할 수 있는 암호. 사용자의 암호(콘솔 액세스)를 비활성화하면 사용자가 해당 사용자 이름과 암호를 사용하여 AWS Management Console에 로그인하지 못한다. 그렇더라도 사용자의 권한이 변경되거나 위임된 역할을 사용하여 콘솔에 액세스하지 못하게 되지는 않는다.

  • 액세스 키: 액세스 키 ID와 보안 액세스 키의 조합이다. 한 사용자에게 한 번에 두 개를 지정할 수 있다. 이것들은 AWS를 프로그래밍 방식으로 호출하는 데 사용될 수 있다. 사용자에게 활성 액세스 키가 있다면 해당 키는 계속 작동하고 AWS CLI, Tools for Windows PowerShell 또는 AWS API 또는 AWS Console Mobile Application을 통해 액세스를 허용한다.

  • CodeCommit에 사용할 SSH 키: CodeCommit를 사용한 인증에 사용할 수 있는 OpenSSH 형식의 SSH 퍼블릭 키

  • 서버 인증서: 일부 AWS 서비스를 사용한 인증에 사용할 수 있는 SSL/TLS 인증서. 서버 인증서를 프로비저닝, 관리 및 배포할 때 AWS Certificate Manager(ACM)를 사용하는 것이 좋다. ACM에서 지원하지 않는 리전에서 HTTPS 연결을 지원해야 하는 경우에만 IAM을 사용한다.

IAM 사용자에게 적절한 크레덴셜을 선택할 수 있다. AWS Management Console을 사용하여 사용자를 생성할 때 최소한 콘솔 암호 또는 액세스 키를 포함하도록 선택해야 한다. 기본적으로 AWS CLI 또는 AWS API를 사용하여 새로 생성된 IAM 사용자는 어떤 종류의 크레덴셜도 보유하지 않는다. 사용자의 요구 사항을 기반으로 IAM 사용자의 크레덴셜의 유형을 생성해야 한다.

다음 옵션을 이용해 암호, 액세스 키 및 MFA 디바이스를 관리한다.

  • IAM 사용자 암호 관리. AWS Management Console에 대한 액세스를 허용하는 암호를 생성 및 변경한다. 암호 정책을 최소 암호 복잡성을 적용하도록 설정 사용자에게 자신의 암호를 변경할 수 있도록 허용

  • IAM 사용자의 액세스 키 관리. 계정의 리소스에 대한 프로그래밍 방식의 액세스를 위해 액세스 키를 생성하고 업데이트한다.

  • 사용자에 대해 멀티 팩터 인증(MFA)을 활성화하여 해당 사용자 아이덴터티의 보안을 강화할 수 있다. MFA를 사용할 경우 사용자는 두 가지 형식의 식별이 가능하다. 먼저, 사용자는 크레덴셜(암호 또는 액세스 키)의 일부분인 아이덴터티를 제공한다. 또한 하드웨어 디바이스 또는 스마트폰이나 태블릿의 애플리케이션에서 생성된 임시 숫자 코드를 제공한다.

  • 미사용 암호 및 액세스 키 찾기. 계정 또는 계정 내 IAM 사용자의 암호 또는 액세스 키를 보유하는 사람은 누구든지 AWS 리소스에 액세스할 수 있다. 보안 모범 사례는 사용자에게 암호와 액세스 키가 필요하지 않을 때 그것들을 제거하는 것이다.

  • 계정의 크레덴셜 보고서 다운로드. 계정의 모든 IAM 사용자와 해당 사용자의 암호, 액세스 키, MFA 디바이스 등 다양한 크레덴셜의 상태를 나열하는 크레덴셜 보고서를 생성하고 다운로드할 수 있다. 암호와 액세스 키의 경우 크레덴셜 보고서를 통해 암호 또는 액세스 키가 언제 마지막으로 사용되었는지 알 수 있다.


3. 사용자 및 권한

기본적으로 새로운 IAM 사용자는 작업을 수행할 어떠한 권한도 없다. 사용자는 AWS 작업을 수행하거나 AWS 리소스에 액세스할 수 있는 권한이 없다. 개별 IAM 사용자를 두면 각 사용자에게 개별적으로 권한을 할당할 수 있다는 장점이 있다. 사용자 몇 명에게 관리 권한을 할당하면 이들이 AWS 리소스를 관리하고 다른 IAM 사용자까지 생성하고 관리할 수 있다. 그러나 대부분의 경우 사용자의 업무에 필요한 작업(AWS 작업) 및 리소스로만 사용자의 권한을 제한한다.

Diego라는 사용자가 있다고 가정해 보자. IAM 사용자 Diego를 생성할 때 해당 사용자의 암호를 생성할 수 있다. 또한 해당 IAM 사용자에게 권한을 연결하여 특정 Amazon EC2 인스턴스를 시작하고 Amazon RDS 데이터베이스의 테이블에서 정보를 읽을(GET) 수 있도록 할 수 있다.

사용자에게 권한 경계를 추가할 수 있다. 권한 경계는 AWS 관리형 정책을 사용하여 아이덴터티 기반 정책이 사용자 또는 역할에 부여할 수 있는 최대 권한을 제한할 수 있는 고급 기능이다.


4. 사용자 및 계정

각 IAM 사용자는 오직 한 개의 AWS 계정과만 연결된다. 사용자는 AWS 계정 내에서 정의되기 때문에 AWS에서 파일에 결제 방법을 저장해 두지 않아도 된다. 계정에 속한 사용자가 수행하는 모든 AWS 활동은 해당 계정으로 청구된다.

AWS 계정의 IAM 리소스 수와 크기는 제한되어 있다.


5. 서비스 계정인 사용자

IAM 사용자는 연결된 크레덴셜 및 권한을 지닌 IAM의 리소스이다. IAM 사용자는 크레덴셜을 사용하여 AWS에 요청하는 사용자 또는 애플리케이션을 나타낼 수 있다. 이를 일반적으로 서비스 계정이라 한다. 애플리케이션에서 IAM 사용자의 장기 크레덴셜을 사용하기로 선택한 경우 액세스 키를 애플리케이션 코드에 직접 포함하면 안 된다. AWS SDK 및 AWS Command Line Interface를 사용하면 코드에서 유지할 필요가 없도록 알려진 위치에 액세스 키를 추가할 수 있다. 또는 모범 사례로서 장기 액세스 키 대신 임시 보안 크레덴셜(IAM 역할)을 사용할 수 있다.


References