IAM 사용자 - AWS Identity and Access Management

IAM 사용자

중요

IAM 모범 사례는 장기 보안 인증 정보가 있는 IAM 사용자를 사용하는 대신, 인간 사용자가 자격 증명 공급자와의 페더레이션을 사용하여 임시 보안 인증으로 AWS에 액세스하도록 하는 것입니다.

AWS Identity and Access Management(IAM) 사용자는 AWS에서 생성하는 엔터티입니다. IAM 사용자는 AWS와의 상호 작용에 IAM 사용자를 사용하는 인간 사용자 또는 서비스를 나타냅니다. AWS에서 사용자는 이름과 자격 증명으로 구성됩니다.

관리자 권한이 있는 IAM 사용자는 AWS 계정 루트 사용자과 같지 않습니다. 루트 사용자에 대한 자세한 내용은 AWS 계정 루트 사용자 섹션을 참조하세요.

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

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

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

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

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

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

이 식별자에 대한 자세한 정보는 IAM 식별자 섹션을 참조하세요.

IAM 사용자 및 보안 인증

AWS는 IAM 사용자 보안 인증에 따라 다양한 방법으로 액세스할 수 있습니다.

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

  • 액세스 키: 프로그래밍 방식으로 AWS를 호출하는 데 사용됩니다. 그러나 IAM 사용자를 위한 액세스 키를 생성하기 전에 고려해야 할 더 안전한 대안이 있습니다. 자세한 내용은 AWS 일반 참조의 장기 액세스 키에 대한 고려 사항 및 대안을 참조하세요. IAM 사용자에게 활성 액세스 키가 있다면 해당 키는 계속 작동하고 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을 사용합니다. ACM을 지원하는 리전을 알아보려면 AWS 일반 참조의 AWS Certificate Manager 엔드포인트 및 할당량을 참조하세요.

IAM 사용자에게 적절한 자격 증명을 선택할 수 있습니다. AWS Management Console을 사용하여 IAM 사용자를 생성할 때 최소한 콘솔 암호 또는 액세스 키를 포함하도록 선택해야 합니다. 기본적으로 AWS CLI 또는 AWS API를 사용하여 새로 생성된 IAM 사용자는 어떤 종류의 자격 증명도 보유하지 않습니다. 사용자의 사용 사례를 기반으로 IAM 사용자의 보안 인증 유형을 생성해야 합니다.

다음 옵션을 이용해 암호, 액세스 키 및 다중 인증(MFA) 디바이스를 관리합니다.

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

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

  • IAM 사용자에 대해 다중 인증(MFA)을 활성화합니다. 가장 좋은 방법은 계정에 속한 모든 IAM 사용자에게 다중 인증(MFA)을 요구하는 것입니다. MFA를 사용할 경우 사용자는 두 가지 형식의 식별이 가능합니다. 먼저, 사용자는 자격 증명(암호 또는 액세스 키)의 일부분인 보안 인증을 제공합니다. 또한 하드웨어 디바이스 또는 스마트폰이나 태블릿의 애플리케이션에서 생성된 임시 숫자 코드를 제공합니다.

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

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

IAM 사용자 및 권한

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

Diego라는 사용자가 있다고 가정해 보겠습니다. IAM 사용자 Diego를 생성할 때 해당 사용자에 대한 암호를 생성하고 권한을 연결하여 특정 Amazon EC2 인스턴스를 시작하고 Amazon RDS 데이터베이스의 테이블에서 (GET) 정보를 읽을 수 있도록 할 수 있습니다. 사용자를 생성하여 초기 자격 증명과 권한을 부여하는 절차는 AWS 계정에서 IAM 사용자 생성 섹션을 참조하세요. 기존 사용자에 대한 권한을 변경하는 절차는 IAM 사용자의 권한 변경 섹션을 참조하세요. 사용자의 암호나 액세스 키를 변경하는 절차는 AWS에서 사용자 암호 관리IAM 사용자의 액세스 키 관리 섹션을 참조하세요.

IAM 사용자에게 권한 경계를 추가할 수 있습니다. 권한 경계는 AWS 관리형 정책을 사용하여 자격 증명 기반 정책이 IAM 사용자 또는 역할에 부여할 수 있는 최대 권한을 제한할 수 있는 고급 기능입니다. 정책 유형 및 활용에 대한 자세한 정보는 IAM의 정책 및 권한 섹션을 참조하세요.

IAM 사용자 및 계정

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

AWS 계정의 IAM 리소스 수와 크기는 제한되어 있습니다. 자세한 내용은 IAM 및 AWS STS 할당량 섹션을 참조하세요.

서비스 계정인 IAM 사용자

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