유틸리티/Cloud

AWS 리소스 접근 권한을 설정

easyfly 2025. 10. 11. 17:35
반응형

 

1. IAM 정책(Policy)이란?

IAM 정책은 “허용(Allow)” 또는 “거부(Deny)” 규칙을 담은 JSON 문서입니다.
즉, 누가 어떤 리소스에 어떤 행동을 할 수 있는가를 기술합니다.

AWS는 모든 리소스 접근을 정책 기반으로 제어합니다.
정책이 없으면 기본적으로 접근이 거부(Deny) 됩니다.


2. 정책의 기본 구조

IAM 정책은 다음과 같은 JSON 형식을 가집니다:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "s3:ListBucket",
      "Resource": "arn:aws:s3:::my-bucket"
    }
  ]
}

 

항목 의미
Version 정책 언어 버전 (항상 "2012-10-17" 사용)
Statement 하나 이상의 권한 선언(Statement) 묶음
Effect "Allow" 또는 "Deny"
Action 허용할 작업 (s3:GetObject, ec2:StartInstances 등)
Resource 해당 작업이 적용될 리소스 ARN(Amazon Resource Name)

3. 여러 작업을 허용하는 정책 예시

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:ListBucket",
        "s3:GetObject"
      ],
      "Resource": [
        "arn:aws:s3:::my-bucket",
        "arn:aws:s3:::my-bucket/*"
      ]
    }
  ]
}
  • my-bucket의 목록 조회(ListBucket)와
    내부 객체 읽기(GetObject)를 모두 허용합니다.
  • "*"는 버킷 안의 모든 파일을 의미합니다.

4. EC2에 대한 정책 예시

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:StartInstances",
        "ec2:StopInstances"
      ],
      "Resource": "*"
    }
  ]
}
  • 모든 EC2 인스턴스를 시작·중지할 수 있음
  • 단, 삭제(TerminateInstances)는 허용되지 않음
  • Resource: "*"은 모든 EC2 리소스에 적용

5. Deny 정책(명시적 거부)

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Deny",
      "Action": "s3:DeleteObject",
      "Resource": "arn:aws:s3:::my-bucket/*"
    }
  ]
}

“삭제만 금지하고 나머지는 허용”할 때 유용합니다.
AWS는 명시적 Deny가 항상 최우선으로 적용됩니다.


6. 정책 연결 방법

정책을 만든 후에는 다음 3가지 중 한 곳에 연결할 수 있습니다:

대상 설명
사용자(User) 개별 사용자에게 직접 부여
그룹(Group) 여러 사용자에게 동일 정책 적용
역할(Role) EC2, Lambda, ECS 등 서비스에 부여

7. AWS에서 정책 작성하기

  1. AWS Management Console → IAM → Policies → Create Policy
  2. JSON 탭 선택 후 위 예시처럼 정책 입력
  3. Review and Create Policy 클릭
  4. 정책 이름 예: S3ReadOnlyPolicy
  5. 생성 후 User/Group/Role에 Attach(연결)

8. 실무 팁

  • ReadOnlyAccess, AdministratorAccess 등 AWS에서 제공하는 기본 정책을 먼저 참고하세요.
  • 사용자 정의 정책(Custom Policy)은 필요할 때만 작성합니다.
  • 정책 테스트는 IAM Policy Simulator로 가능 → https://policysim.aws.amazon.com

9. 한 줄 요약

IAM 정책은 AWS 보안의 설계도입니다.
누가, 무엇을, 어디서, 어떻게 할 수 있는지를 JSON으로 정의합니다.