IAM은 Identity and Access Management의 약자이며 AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 웹 서비스. 이를 활용해 사용자가 액세스 할 수 있는 AWS 리소스에 대한 제어 권한을 중앙에서 관리할 수 있다.
IAM이란 무엇입니까?
같은 업무를 담당하는 사용자들에게 동일한 AWS 권한을 부여하기 위해서 사용
하나의 정책은 사용자의 권한을 정의한다.
사용자가 많은 비용이나 보안 문제를 발생시키는 것을 방지하기 위해 AWS는 사용자에게 모든 권한을 허용하지 않으며 최소 권한의 원칙을 적용한다.
권한 부여는 JSON 문서를 사용한다.
```json
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ecr:*",
"cloudtrail:LookupEvents"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"iam:CreateServiceLinkedRole"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"iam:AWSServiceName": [
"replication.ecr.amazonaws.com"
]
}
}
}
]
}
```
→ IAM 권한 예시 - AmazonEC2ContainerRegistryFullAccess
AWS 콘솔 액세스가 가능한 IAM 사용자를 만들기 위해서 IAM 사용자를 직접 생성하거나 기존 사용자를 지정할 수 있다.
사용자 그룹 생성
Tag 설정
자격 증명 정보가 있는 csv 파일 다운로드
IAM 대시보드에서 AWS 계정 ID를 확인
IAM 사용자로 로그인을 한다. 보통 MFA를 설정해서 사용한다.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ecr:*",
"cloudtrail:LookupEvents"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"iam:CreateServiceLinkedRole"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"iam:AWSServiceName": [
"replication.ecr.amazonaws.com"
]
}
}
}
]
}
요소 | 설명 |
---|---|
Version | 정책 언어 버전으로 보통 “2012-10-17”을 사용한다. |
ID (Optional) | 정책을 식별하는 ID |
Statement(Required) | 하나 혹은 여러 문장 Sid (Optional) : 문장의 식별자 Effect : 특정 API에 접근 허용 여부 설정 Principle : 특정 정책이 적용될 사용자, 계정 혹은 역할 Action : Effect에 따라 허용 혹은 거부되는 API 호출 목록 Resource : Action이 적용될 리소스의 목록 Condition : Statement가 언제 적용될지를 결정 |
사용자의 계정에서 서비스 실행이 필요할 때 해당 서비스도 어떠한 권한이 필요하다. 이 경우에 IAM Role을 사용해서 서비스에 권한을 부여할 수 있다.
IAM 콘솔에서 자격 증명 보고서를 클릭하면 보고서를 다운로드 받을 수 있다.
[자격 증명 보고서](./status_reports_Fri%20May%2031%202024%2017_04_47%20GMT+0900%20(한국%20표준시).csv)