IAM (Identity and Access Management)이란?
AWS 계정을 생성할 때 완전한 액세스 권한이 있는 루트 계정으로 생성됩니다. 루트 사용자만 수행할 수 있는 작업(루트 사용자 보안 인증 정보를 보호 등)을 제외하고 AWS는 루트 사용자 계정에서 작업하는 행위를 지양할 것을 권고합니다.
루트 계정에서 지양하는 일련의 작업들은 IAM을 통해 해결합니다. IAM을 사용하면 사용자, 그룹 을 생성하여 관리하며 리소스에 대한 접근도 중앙에서 관리할 수 있습니다.
- 인증: 사용자가 AWS 리소스에 액세스할 때 사용자 이름과 암호를 요청하여 인증할 수 있습니다.
- 권한 부여: 사용자, 그룹 또는 역할에 대한 권한을 지정할 수 있습니다. 권한은 AWS 리소스에서 수행할 수 있는 작업을 나타내며 IAM 정책을 사용하여 지정할 수 있습니다.
- 권한 검증: 사용자가 AWS 리소스에 대한 액세스를 요청할 때 요청이 인증된 사용자에게 허용되는지 여부를 결정할 수 있습니다.
IAM은 AWS에서 보안을 강화하고 규정 준수 요구 사항을 충족하는 데 중요한 역할을 합니다. IAM을 사용하면 사용자에게 필요한 권한만 부여하여 보안을 유지하고, 일부 규정 준수 규정을 준수하기 위해 일부 사용자에게만 특정 리소스에 대한 액세스를 부여할 수 있습니다
IAM 특징
- Global 서비스
- 회원 가입시 만들어진 Root Account는 사용/ 공유되지 않아야 합니다.
- User와 Group을 만들어서 사용해야 합니다.
- Group 은 개발자/ 운영 / 디자이너와 같이 유저 종류를 지정합니다.
- User는 Group에 속하지 않을 수도, 여러 Group에 속할 수 있습니다.
- User는 Root Account가 준 AWS 서비스만 접근할 수 있습니다.
- 이렇게 만들어진 Group과 User들은 Policy를 통해서 권한을 조정합니다.
- 최소한의 권한 원칙(least privilege principle)
IAM 구성
- 사용자(User): IAM에서 사용자는 AWS 계정에 액세스하는 개별 인물 또는 서비스입니다. AWS IAM에서는 계정에 액세스하는 각 사용자에 대해 별도의 보안 자격 증명을 생성할 수 있습니다. 이를 통해 사용자가 AWS 리소스에 대한 액세스 권한을 가지며, 이러한 액세스 권한은 IAM 정책을 사용하여 관리됩니다.
- 그룹(Group): IAM에서 그룹은 하나 이상의 사용자를 그룹화하여 이들에게 공통된 권한을 부여하는 데 사용됩니다. 예를 들어, 특정 Amazon S3 버킷에 대한 읽기 및 쓰기 액세스를 가진 모든 사용자를 그룹화할 수 있습니다. 그룹은 유사한 권한을 가진 여러 사용자를 효과적으로 관리할 수 있도록 도와줍니다.
- 정책(Policy): IAM 정책은 JSON 형식으로 작성되며, 허용 또는 거부할 수 있는 작업 및 AWS 리소스에 대한 액세스 수준을 지정합니다. IAM 정책은 일반적으로 최소 권한 원칙을 따릅니다. 즉, 필요한 권한만 부여하고, 불필요한 권한을 제거하여 보안을 강화합니다.
IAM 사용자 생성하기

* AWS Management Console에 대한 사용자 액세스 권한 제공
체크 X, API를 이용해서 access
체크 O, Web에서 접근 할 수 있는 계정을 생성

자동 생성된 암호를 지정하면, 처음 랜덤한 비번을 갖고 사용자가 이후 암호를 변경하도록 설정할 수 있습니다.

사용자 지정 암호는 일반적인 비밀번호 생성과 동일합니다.


그룹 권한 지정하기
JSON 형태로 권한 생성합니다.
Administrator Access : 모든 권한을 주는 관리자 생성

* Account = Root 계정
* User = 사용자 할당

가독성을 위해 aws의 계정 별칭을 설정 할 수 있습니다.
Policy Structure
{
"Version": "policy-version",
"Statement": [
{
"Effect": "allow-or-deny",
"Action": ["action-name"],
"Resource": ["resource-arn"],
"Condition": {
"condition-operator": {
"condition-key": "condition-value"
}
}
}
]
}
- Version : 정책의 버전을 나타냅니다. 현재는 "2012-10-17" 에서 고정되었습니다.
- Statement : 정책의 규칙을 나타냅니다. 배열 형태로 여러 개의 규칙을 작성할 수 있습니다.
- Effect : 규칙의 적용 여부를 나타냅니다. "allow" 또는 "deny" 중 하나를 선택합니다.
- Action : 규칙이 적용되는 작업의 종류를 나타냅니다. 예를 들어 "s3:ListBucket"과 같은 형식으로 작성합니다.
- Resource : 규칙이 적용되는 리소스의 ARN (Amazon Resource Name)을 나타냅니다. 예를 들어 "arn:aws:s3:::my-bucket/*"과 같은 형식으로 작성합니다.
- Condition : 규칙이 적용되는 조건을 나타냅니다. 필수는 아니며, 필요한 경우 추가할 수 있습니다. 다양한 조건 연산자를 사용할 수 있습니다. 예를 들어 "IpAddress" 조건 연산자를 사용하면 특정 IP 주소에서만 작업을 수행할 수 있도록 제한할 수 있습니다.
Multi-Factor Authentication(MFA)
다중 인증 요소 인증 방식을 의미합니다. 이 방식은 일반적인 사용자 ID와 비밀번호 입력 외에 추가적인 인증 요소를 요구하여 보안을 강화하는 방법입니다.
- 계정에서 반드시 활성화 시키는 것이 좋습니다.
- 활성화 된 MFA는 기기 변경시 추가인증 혹은 백업파일이 필요합니다. 핸드폰 바꿀 때 주의하세요.
'aws' 카테고리의 다른 글
| 04.5. [aws] SSL과 HTTPS (0) | 2023.05.14 |
|---|---|
| 04. [aws] ELB (0) | 2023.05.07 |
| 03. [aws] EBS(Elastic Block Store) (0) | 2023.05.07 |
| 02. [aws] EC2 (0) | 2023.05.07 |
| 00. [aws] AZ (0) | 2023.05.01 |