-
[AWS] IAM이란?AWS 2022. 12. 18. 00:01반응형
AWS IAM이란?
AWS Identity And Access Management(IAM)은 AWS리소스에 대한 액세스를 안전하게 제어할 수 있는 웹 서비스입니다.
IAM을 사용하여 리소스를 사용하도록 인증 및 권한 부여된 대상을 제어합니다.
AWS계정을 생성할 때는 해당 계정의 모든 AWS 서비스 및 리소스에 대한 완전한 액세스 권한이 있는 단일 로그인 ID로 시작합니다.
이 자격 증명은 "루트 사용자"라고 하며, 계정을 생성할 때 사용한 이메일과 암호로 로그인하여 액세스 합니다.
일상적인 작업에 루트 사용자를 사용하지 않을 것을 강력히 권장합니다.
IAM이 제공하는 기능
- AWS 계정에 대한 공유
액세스 암호나 액세스 키 공유 없이 리소스를 관리하고 사용할 수 있는 권한 부여
- 세분화된 권한
리소스에 따라 여러 사람에게 다양한 권한을 부여할 수 있습니다.
예를 들어 일부 사용자에게 EC2, S3, DynamoDB는 완전한 액세스 허용, 다른 사용자에게는 S3 읽기 전용 권한 등만 부여할 수 있습니다.
IAM 조금 더 쉽게 알아보기
리소스에 대한 인증 및 권한 부여된 대상을 제어합니다.
예를 들어 특정 보안센터에 출입이 허가된 인원들은 출입 카드를 통해 출입합니다.
IAM은 이런 보안센터의 출입 권한을 부여하는 출입카드나, 방문 허가 기능을 가지고 있는 서비스입니다.
다음은 그림을 예시로 보겠습니다.
Group Admins는 거의 모든 권한을 부여받았거나, 솔루션들의 설정, 신규 계정 생성 등의 권한이 있을 것입니다.
Group Developers는 개발자별로 자신이 속한 개발 부서 또는 분야에서 사용하는 AWS 솔루션들의 접근 권한을 부여받았을 것입니다.
Group Test는 별도의 설정 권한 없이 실행 권한 위주로만 권한을 부여받았을 것입니다.
Policy 예시
Policy는 어떤 리소스에 대해 "어떤 권한을 가지는가"를 체크하는 도구입니다.
JSON 포맷으로 Deny/Allow를 명시합니다.
Effect : 명시된 정택에 대한 허용 차단
Principal: 접근에 허용/차단하고자 하는 대상
Action : 허용/차단하고자 하는 접근 타입
Resource: 요청의 목적지가 되는 서비스
Condition: 명시된 조건, 유효하다고 판단될 수 있는 조건
예시
"Effect":"Allow or Deny" "Principal":"AWS":"arn:aws:iam::123456789012:user/username" "Action":"s3:GetObject" "Resource":"arn:aws:sqs:us-west-2:123456789012:queue1" "StringEqualsIfExists":{"aws:RequestTag/project": ["Pickles"]}
EC2 인스턴스에 IAM role이 부여되어 있고, DynamoDB에 접근하여 Read/Write 작업을 수행하려고 합니다.
이때 IAM 정책은 어떤 조건을 가지고 있어야 할까요?
{ "Effect": "Allow", //허용 "Action": "*" //모든 액션 "Resource": "*" //모든 리소스 }
접근은 가능하겠지만 루트 유저와 같은 권한으로 너무 많은 권한을 부여합니다.
정책은 꼭 필요한 권한만 허용해주는 최소 권한 부여의 원칙이 중요합니다.
{ "Effect": "Allow", "Action": [ "dynamodb:GetItem", "dynamodb:PutItem", ] "Resource": [ "arn:aws:dynamodb:us-east-2:111122223333:table/MyTable" ] "Condition": { "IpAddress":{ "aws:SourceIp" : "1.1.1.1" }, } }
첫 번째로 DB의 Get/Put 하는 작업만 가능하도록 구체적인 액션을 설정합니다.
두 번째로 특정 Dynamo 리소스에만 접근하도록 구체화했습니다.
이제 해당 리소스 이외 다른 db 객체에는 IAM 유저가 접근할 수 없게 됩니다.
세 번째로 Condition인 특정 조건으로 IP주소나 소스 IP를 설정하여 회사 네트워크 외부에서는 임의 요청을 할 수 없도록 구성할 수 있도록 할 수 있습니다. (사무실의 NAT IP)
참고자료
https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/introduction.html
IAM이란 무엇입니까? - AWS Identity and Access Management
이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오.
docs.aws.amazon.com
https://tech.cloud.nongshim.co.kr/2018/10/13/초보자를-위한-aws-웹구축-2-iam-유저-생성하기/
[매뉴얼][초보자를 위한 AWS 웹구축] 2. IAM 유저 및 MFA 생성하기
IAM 이란? IAM(AWS Identity and Access Management)은 AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 웹 서비스입니다. IAM을 사용하여 리소스를 사용하도록 인증 및 권한 부여된 대상을 제어합니다.
tech.cloud.nongshim.co.kr
https://choseongho93.tistory.com/263
[AWS] IAM이란?
● IAM (Identity and Access Manager) : AWS의 리소스에 대한 개별적으로 접근제어와 권한을 가지도록 계정 또는 그룹을 생성, 관리하는 서비스입니다. 어떤 IAM 계정은 EC2 서비스만 접근할 수 있도록 권한
choseongho93.tistory.com
https://ottl-seo.tistory.com/171
AWS IAM과 친해지기
AWS Builders 온라인 시리즈를 듣고 정리한 내용입니다. Youtube IAM은 AWS 사용자라면 끊임없이 사용하게 되는 아주 중요한 요소이다. AWS 리소스를 사용하기 위한 모든 요청은 Identity and Access Management,.
ottl-seo.tistory.com
'AWS' 카테고리의 다른 글
[AWS] AWS MediaConvert Jobtemplate Kotlin SDK 적용 (0) 2022.12.25 [AWS] MediaConvert createJob Kotlin SDK 적용 (0) 2022.12.24 [AWS] MediaConvert란? + 튜토리얼 (0) 2022.12.17 Amazon S3란? (0) 2022.03.12 AWS RDS vs EC2 차이점 (0) 2022.03.05