IAM 사용자
IAM 사용자
중요 – IAM 모범 사례는 장기 자격 증명을 가진 IAM 사용자를 쓰는 대신, 휴먼 사용자가 임시 자격 증명으로 AWS에 접근하도록 자격 증명 공급자와 페더레이션을 요구하는 것을 권장해요. IAM 사용자는 페더레이션 사용자로 지원되지 않는 특정 사용 사례에만 쓰는 것을 권장해요. 새로운 AWS 경험을 사용 중이고 휴먼 사용자에게 프로젝트나 AWS 설정에 대한 접근을 제공하려면 사용자를 팀에 추가해야 해요. 새 경험에서는 콘솔 접근이 있는 IAM 사용자를 만들 수 없어요. 자세한 내용은 팀 구성원 초대를 참고하세요.
IAM 사용자 는 AWS 계정에서 만드는 엔터티예요. IAM 사용자는 AWS 리소스와 상호작용하기 위해 IAM 사용자를 사용하는 휴먼 사용자 또는 워크로드를 나타내요. IAM 사용자는 이름과 자격 증명으로 구성돼요. 관리자 권한이 있는 IAM 사용자는 AWS 계정 루트 사용자와 같지 않아요. 루트 사용자에 대한 자세한 내용은 AWS 계정 루트 사용자를 참고하세요.
출처: 문서
본문
AWS가 IAM 사용자를 식별하는 방법 (How AWS identifies an IAM user)
IAM 사용자를 만들면 IAM은 사용자를 식별하는 다음 방법을 만들어요.
- IAM 사용자의 "친근한 이름"(friendly name) – IAM 사용자를 만들 때 지정한 이름으로, 예를 들어
Richard나Anaya예요. AWS Management Console에서 보는 이름이에요. IAM 사용자 이름은 Amazon Resource Name(ARN)에 나타나므로, IAM 이름에 개인 식별 정보를 포함하지 않는 걸 권장해요. IAM 이름의 요구 사항·제한 사항은 IAM 이름 요구 사항을 참고하세요. - IAM 사용자의 Amazon Resource Name(ARN) – AWS 전체에서 IAM 사용자를 고유하게 식별해야 할 때 사용해요. 예를 들어 ARN을 사용해 Amazon S3 버킷용 IAM 정책의
Principal로 IAM 사용자를 지정할 수 있어요. IAM 사용자 ARN은 다음과 같을 수 있어요.
arn:aws:iam::account-ID-without-hyphens:user/Richard
- IAM 사용자의 고유 식별자 (unique identifier) – 이 ID는 API, Tools for Windows PowerShell, 또는 AWS CLI로 IAM 사용자를 만들 때만 반환되며 콘솔에서는 볼 수 없어요.
이 식별자에 대한 자세한 내용은 IAM 식별자를 참고하세요.
IAM 사용자와 자격 증명 (IAM users and credentials)
IAM 사용자 자격 증명에 따라 AWS에 접근하는 여러 방법이 있어요.
- 콘솔 비밀번호 – IAM 사용자가 AWS Management Console 같은 대화형 세션에 로그인하기 위해 입력할 수 있는 비밀번호예요. IAM 사용자의 비밀번호(콘솔 접근)를 비활성화하면 로그인 자격 증명으로 AWS Management Console에 로그인할 수 없게 돼요. 권한은 바뀌지 않고, 맡은 역할을 사용한 콘솔 접근도 막지 않아요. 콘솔 접근이 활성화된 IAM 사용자는
aws loginAWS CLI 명령을 사용해 AWS CLI·SDK 접근을 인증하는 데 같은 자격 증명을 사용할 수도 있어요. 이 사용자에게는 SignInLocalDevelopmentAccess 권한이 필요해요. 자세한 내용은 _AWS Command Line Interface 사용자 가이드_의 AWS CLI 인증 및 접근 자격 증명을 참고하세요. - 액세스 키 (Access keys) – AWS에 프로그래밍 방식 호출을 하는 데 사용해요. 다만 IAM 사용자용 액세스 키를 만들기 전에 고려해야 할 더 안전한 대안이 있어요. 자세한 내용은 _AWS 일반 참조_의 장기 액세스 키에 대한 고려 사항·대안을 참고하세요. IAM 사용자에게 활성 액세스 키가 있으면 계속 작동해 AWS CLI, Tools for Windows PowerShell, AWS API, AWS Console Mobile Application을 통한 접근을 허용해요.
- CodeCommit용 SSH 키 – CodeCommit으로 인증하는 데 사용할 수 있는 OpenSSH 형식의 SSH 공개 키예요.
- 서버 인증서 (Server certificates) – 일부 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 사용자의 액세스 키 관리 – 계정의 리소스에 프로그래밍 방식으로 접근하기 위한 액세스 키를 만들고 업데이트해요.
- IAM 사용자용 다중 인증(MFA) 활성화 – 모범 사례에 따라 계정의 모든 IAM 사용자에 대해 다중 인증을 요구하는 것을 권장해요. MFA를 사용하면 IAM 사용자는 두 가지 형태의 식별을 제공해야 해요: 첫째, 사용자 자격 증명의 일부인 자격 증명(비밀번호 또는 액세스 키), 둘째, 하드웨어 디바이스나 스마트폰·태블릿의 애플리케이션에서 생성된 일회용 숫자 코드를 제공해야 해요.
- 사용하지 않는 비밀번호와 액세스 키 찾기 – 계정 또는 계정 내 IAM 사용자의 비밀번호나 액세스 키를 가진 사람은 AWS 리소스에 접근할 수 있어요. IAM 사용자가 더 이상 필요 없을 때 비밀번호와 액세스 키를 제거하는 것이 보안 모범 사례예요.
- 계정의 자격 증명 보고서 다운로드 – 계정의 모든 IAM 사용자와 각 자격 증명(비밀번호, 액세스 키, MFA 디바이스 포함)의 상태를 나열하는 자격 증명 보고서를 생성·다운로드할 수 있어요. 비밀번호와 액세스 키에 대해 보고서는 비밀번호나 액세스 키가 얼마나 최근에 사용됐는지 보여 줘요.
IAM 사용자와 권한 (IAM users and permissions)
기본적으로 새 IAM 사용자는 아무 권한이 없어요. 어떤 AWS 작업도 수행하거나 어떤 AWS 리소스에도 접근할 수 없어요. 개별 IAM 사용자의 장점은 각 사용자에게 개별적으로 권한을 할당할 수 있다는 거예요. 소수의 사용자에게 관리 권한을 할당해 AWS 리소스를 관리하고 다른 IAM 사용자를 만들고 관리하게 할 수도 있어요. 그래도 대부분의 경우 사용자의 권한을 작업에 필요한 AWS 작업·리소스로 제한하길 원할 거예요.
Diego라는 사용자를 상상해 보세요. IAM 사용자 Diego를 만들 때 그를 위한 비밀번호를 만들고 특정 Amazon EC2 인스턴스를 시작하고 Amazon RDS 데이터베이스의 테이블에서 정보를 읽을(GET) 수 있는 권한을 연결해요. IAM 사용자를 만들고 초기 자격 증명·권한을 부여하는 절차는 AWS 계정에 IAM 사용자 만들기를, 기존 사용자의 권한을 변경하는 절차는 IAM 사용자의 권한 변경을, 사용자의 비밀번호나 액세스 키를 변경하는 절차는 AWS의 사용자 비밀번호와 IAM 사용자 액세스 키 관리를 참고하세요.
IAM 사용자에 권한 경계(permissions boundary)를 추가할 수도 있어요. 권한 경계는 AWS 관리형 정책을 사용해 자격 증명 기반 정책이 IAM 사용자나 역할에 부여할 수 있는 최대 권한을 제한할 수 있게 해 주는 고급 기능이에요. 정책 유형과 용도에 대한 자세한 내용은 AWS Identity and Access Management의 정책과 권한을 참고하세요.
IAM 사용자와 계정 (IAM users and accounts)
각 IAM 사용자는 하나의 AWS 계정과만 연결돼요. IAM 사용자는 AWS 계정 내에 정의되므로 AWS에 결제 수단을 등록할 필요가 없어요. 계정에서 IAM 사용자가 수행한 AWS 활동은 모두 계정에 청구돼요. AWS 계정의 IAM 리소스 수와 크기는 제한돼 있어요. 자세한 내용은 IAM 및 AWS STS 할당량을 참고하세요.
서비스 계정으로서의 IAM 사용자 (IAM users as service accounts)
IAM 사용자는 연결된 자격 증명과 권한이 있는 IAM의 리소스예요. IAM 사용자는 자격 증명을 사용해 AWS 요청을 하는 사람이나 애플리케이션을 나타낼 수 있는데, 이를 보통 서비스 계정(service account) 이라고 불러요. 애플리케이션에서 IAM 사용자의 장기 자격 증명을 사용하기로 선택한다면 액세스 키를 애플리케이션 코드에 직접 임베드하지 마세요. AWS SDK와 AWS Command Line Interface는 액세스 키를 코드에 저장하지 않아도 되는 알려진 위치에 둘 수 있게 해 줘요. 자세한 내용은 _AWS 일반 참조_의 IAM 사용자 액세스 키를 올바르게 관리하기를 참고하세요. 또는 모범 사례로 장기 액세스 키 대신 임시 보안 자격 증명(IAM 역할)을 사용할 수 있어요.
IAM 사용자를 만든 뒤에는 필요에 따라 계정의 IAM 사용자 보기와 IAM 사용자 이름 변경을 할 수 있어요.