AWS IAM 소개

Chori·2024년 11월 22일
0
post-thumbnail

처음 시작하는 Infrastructure as Code: AWS & 테라폼을 수강하며 정리한 내용입니다.


AWS IAM이란?

  • AWS Identity and Access Management는 AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 웹 서비스
  • IAM을 사용하여 리소스를 사용하도록 인증 및 권한이 부여된 대상을 제어

보안의 영역

  • Blocking: 특정 자원에 대한 접근 혹은 사용을 제어하는 것, AWS IAM이 이 영역에 해당
  • Encrypting: 공개되는 정보에 대해서 식별 불가능한 정보로 암호화하는 것
  • Hiding: 정보에 관한 접근을 특정 경로 혹은 명령어로 접근하는 것
  • 위로 갈수록 좀 더 강력한 보안

IAM 구성요소

  • IAM User: AWS 내에서 생성하는 사용자로 AWS와 상호작용하는 사용자 혹은 애플리케이션
  • IAM Group: IAM User의 집합, Group을 사용하여 다수 사용자에 대해 동일한 권한을 보다 쉽게 관리
    • 실제 조직과 Group 형태를 똑같이 맞추는 것이 좋음
    • 그리고 각 조직의 사람들을 해당 Group에 추가
  • IAM Role: 특정 권한을 가진 IAM 자격증명, Role을 사용함으로써 특정 사용자, 애플리케이션 또는 AWS 서비스에 접근 권한을 위함할 수 있음
  • IAM Policy: AWS에 접근하는 특정 권한을 정의하는 개체, AWS IAM 리소스들과 연결하여 사용할 수 있음

IAM Policy 구조

{
  "Statement":[
    {
      "Effect": "effect",
      "Action": "action",
      "Resource": "arn",
      "Condition": {
        "condition": {
          "key": "value"
        }
      }
    }
  ]
}
  • Effect: "Allow" 또는 "Deny", 기본적으로 IAM 사용자에게는 리소스 및 API 작업을 사용할 권한이 없으므로 모든 요청이 거부됨
  • Action: 권한을 부여하거나 거부할 특정 API 작업, 예를 들어 s3:GetObject은 S3에 저장된 객체들을 다운받을 수 있도록 함
  • Resource: 작업의 영향을 받는 리소스, Amazon 리소스 이름(ARN)을 사용하거나 명령문이 모든 리소스에 적용됨을 표시하는 와일드카드(*)를 사용
  • Condition: 선택사항으로 정책이 적용되는 시점을 제어하는 데 사용, 다양한 조건을 넣어 권한을 부여할 수 있음, 예를 들어 특정 IP나 VPC인 경우에만 허용할 수 있음
  • Policy를 직접 만들 수 있고 AWS가 이미 자주 쓰이는 Policy를 만들어 놓음

예시

{
  "Version": "2024-11-23",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:AuthorizeSecurityGroupIngress",
        "ec2:AuthorizeSecurityGroupEgress",
        "ec2:RevokeSecurityGroupIngress",
        "ec2:RevokeSecurityGroupEgress"
      ],
      "Resource": "arn:aws:ec2:region:account:security-group/*",
      "Condition": {
        "StringEquals": {
          "ec2:Vpc": "arn:aws:ec2:region:account:vpc/vpc-11223344556677889"
        }
      }
    }
  ]
}
profile
전부인 것처럼, 전부가 아닌 것처럼

0개의 댓글