인수인계를 받는과정에서 모르는 단어가 정말 많았다.
방화벽이라든가 프로젝트 기초세팅을 하기전에 일단 기초지식을 먼저 정리해본다
1. AWS의 사용자
AWS 로그인화면을 보면 Account ID와 IAM username으로 로그인하는 두가지 방식이 존재한다

1. AWS Account
AWS를 처음 가입할때 생성한 계정으로, AWS 리소스를 사용하는 독립된 청구 단위
회사 단위 또는 프로젝트 단위로 하나의 AWS Account를 생성하여 사용한다
- email + password로 가입
- 자동으로 Root User가 생성
- 계정 관리 및 권한, 결제같은 모든 서비스는 이계정에서 담당
보안상의 이유로 Root 유저는MFA설정을 하고, 사용하지않는것을 권장함!!
하나의 AWS Account에 여러 IAM 사용자를 생성하고 자원에 접근 하는것이 안전하다
IAM Account (IAM 사용자)
하나의 AWS Account 내에서 생성한 세부적인 설정을 가진 사용자 ID
실무에서 개발자, 운영자, 어플리케이션 등의 접근을 모두 IAM 사용자로 처리한다
- Root 계정으로 로그인 후 생성 가능
- 각각의 IAM 사용자는 개별적인 로그인 명, 암호, 권한(policy)를 부여 받음
- Access Key + Secret Key 또는 콘솔로그인으로 접근
- IAM 사용자는 자기 계정만 접근 가능 (다른 계정들은 권한을 주지 않았다면 접근 불가)
IAM 계정은 부여받은 권한내에서 자원에 접근하고 이용할 수는 있으나, Root계정의 비용이나 최상위 권한은 건드릴 수 없다
정리
- IAM 사용자는 특정 AWS Account에 속한 하위 사용자
| 기능 | AWS Account(루트 계정) | IAM 사용자 |
| 권한 | 모든 권한 | 부여된 Policy의 범위의 권한 |
| 권장 | X (비활성화 + MFA 설정) | O |
| 삭제 가능 | X | O |
| MFA | 필수 | 권장 |
2. Policy (정책)
AWS 에서 정책은 고객관리형 정책과 AWS 관리형 정책 2가지로 나눌 수 있다.
| 이름 | 설명 |
| Customer Managed Policy (고객 관리형 정책) |
사용자가 직접 작성하고 관리하는 정책 |
| AWS Managed Policy (AWS 관리형 정책) |
AWS 에서 미리 만들어놓고 제공하는 정책 |
1) 고객 관리형 정책
- 사용자가 이름을 부여하고 직접 정의,수정이 가능
- 특정 팀,조직의 요구사항에 맞게 맞춤이 가능
- 여러 IAM 사용자/역할에 재사용이 가능
# S3-ReadWrite-For-팀명
# 원하는 Action/Resource 조합을 자유롭게 작성
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["s3:PutObject", "s3:GetObject"],
"Resource": "arn:aws:s3:::my-team-bucket/*"
}
]
}
2) AWS 관리형 정책
- AWS에서 미리 만들어 놓은 정책
- 자주 사용되는 권한의 조합을 가지고 있다
- 바로 사용 가능한 점으로 회사에서 표준적인 역할/권한이 필요할 때 사용
- 수정 불가
예시)
AmazonS3ReadOnlyAccess S3 : 버킷을 읽을 수 있는 권한
AdministratorAccess : 거의 모든 AWS 리소스에 대한 전체 권한
AmazonEC2FullAccess : EC2에 대한 전체 권한
추가 정리
3) 인라인 정책 (Inline Policy)
- IAM 사용자/Group/Role 에 직접 붙는 1회성 정책
- 재사용 불가
- 해당 사용자 또는 역할 삭제시 같이 사라짐