IAM(Identity and Access Management)
AWS IAM이란?
AWS는 인프라를 구성할 수 있는 서비스이다. 조직에서 인프라에 접근 가능한 사람은 한 명이 아니다. 직급에 따라 서비스를 사용할 수 있는 권한이 다르게 설정돼야 할 것이다. 이러한 보안 문제를 해결해 줄 서비스가 바로 AWS IAM이다.
IAM은 AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 서비스이다. IAM을 사용하면 사용자 및 그룹을 생성 및 관리하고 권한을 사용하여 AWS 리소스에 대한 액세스 권한을 부여하거나 거부할 수 있다. 예를 들어 S3 서비스에 접근할 수 있도록 액세스를 부여하거나 접근하지 못하도록 거부하도록 설정할 수 있다.
IAM 작동 방식
사용자가 AWS 서비스에 요청을 보낼 때, 인증을 위한 자격 증명도 같이 보낸다. AWS 서비스에서는 해당 요청을 처리하기 전에 자격 증명을 IAM에 보낸다. IAM에서는 해당 자격 증명을 보고 해당 사용자가 올바른 사용자인지 확인(인증), 해당 서비스와 서비스의 기능을 이용해도 되는가(인가) 등을 판별한 뒤 문제가 없다면 서비스 요청을 허용한다.
IAM 리소스
IAM에서 관리하는 리소스인 그룹, 사용자, 역할, 정책, 자격 증명 공급자에 대해 알아보자.
사용자 (Users)
IAM에서 AWS 리소스에 액세스 하는 사람 또는 애플리케이션에 대해 개별 사용자를 생성할 수 있다. 각 사용자는 액세스 키 ID 및 비밀 액세스 키와 같은 고유한 보안 자격 증명 세트를 통해 AWS 서비스를 인증하고 상호작용할 수 있다. 추가 보안을 위해 다단계 인증(MFA)을 활성화할 수도 있다.
그룹 (Groups)
IAM 사용자를 그룹으로 구성하여 권한을 관리할 수 있다. 그룹은 동일한 권한 집합을 공유하는 사용자 모음이다. 그룹에 권한을 적용하면 해당 그룹 내의 모든 사용자가 해당 권한을 상속한다. 이에 따라 사용자 수가 증가함에 따라 권한을 보다 쉽게 관리하고 유지할 수 있다.
역할 (Roles)
리소스에 액세스해야 하는 사용자 또는 서비스에 권한을 부여하는 또 다른 방법이다. IAM 역할도 인증을 위해 사용되지만, 사용자와 다른 점은 역할 자체가 요정을 보내는 주체가 되지는 않는다. 즉 역할을 맡은 사용자나 서비스가 요청의 주체가 된다. 또한 역할은 하나의 사용자에게 귀속되지 않고 해당 역할이 필요한 모든 사용자나 서비스에 연결될 수 있다. 귀속되지 않기에 사용자는 역할을 이용하기 위해 AWS Security Token Service(STS)라는 서비스에 임시 보안 자격 증명을 요청한다. 증명이 완료되면, 증명 세션이 유효한 시간 동안 유저는 역할의 권한을 이용 가능하다.
정책 (Policy)
정책은 사용자, 그룹 또는 역할에 대한 권한을 정의하는 JSON 문서이다. 정책은 작업이 허용되거나 거부되는 작업, 리소스 및 조건을 지정한다. 사용자 지정 정책을 사용하거나 AWS에서 유지 관리되는 사전 정의된 정책인 AWS 관리형 정책을 사용할 수 있다.
- AWS 관리형 정책 : AmazonEC2ReadOnlyAccess, IAMFullAccess 등
// JSON policy document : IAMFullAccess
{
"Version" : "2012-10-17",
"Statement" : [
{
"Effect" : "Allow",
"Action" : [
"iam:*",
"organizations:DescribeAccount",
"organizations:DescribeOrganization",
"organizations:DescribeOrganizationalUnit",
"organizations:DescribePolicy",
"organizations:ListChildren",
"organizations:ListParents",
"organizations:ListPoliciesForTarget",
"organizations:ListRoots",
"organizations:ListPolicies",
"organizations:ListTargetsForPolicy"
],
"Resource" : "*"
}
]
}
자격 증명 공급자(Identity Federation)
IAM은 자격 증명 연동을 지원하므로 회사 디렉터리의 사용자, 소셜 미디어 계정 또는 기타 자격 증명 공급자와 같이 이미 AWS 외부에 자격 증명이 있는 사용자에게 AWS 리소스에 대한 액세스 권한을 부여할 수 있다. 이를 통해 각 개인에 대해 별도의 IAM 사용자를 생성할 필요 없이 임시 AWS 보안 자격 증명을 얻고 AWS 서비스에 액세스 할 수 있다.
- 유형 : SAML 2.0 IdP(Identity Providers), OIDC(OpenID Connect) ID 제공자(OIDC Providers)
추가 자료
- AWS IAM이란? : IAM의 작동 방식과 각 리소스의 설명이 자세히 정리되어있다.
Reference
https://docs.aws.amazon.com/aws-managed-policy/latest/reference/IAMFullAccess.html
https://velog.io/@rokwon_k/AWS-IAM-%EC%84%9C%EB%B9%84%EC%8A%A4
https://dev.classmethod.jp/articles/what-is-aws-iam-kr/
https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/introduction.html
'Infra > AWS' 카테고리의 다른 글
[AWS] Amazon VPC (Virtual Private Cloud) 개념과 구성 요소 (0) | 2024.07.03 |
---|---|
[AWS] AWS 서비스 종료 후에도 VPC 비용 발생 문제 해결 (0) | 2024.05.21 |
[AWS] Amazon Redshift 개념과 구조, 특징 (0) | 2024.05.16 |
[AWS] S3 데이터 적재 자동화(Amazon EC2, Crontab) (0) | 2024.05.16 |
[AWS] Amazon S3 개념과 관련 용어 및 실습 (0) | 2024.05.15 |