I got IT

AWS_IAM 정책문 작성 본문

AWS/IAM

AWS_IAM 정책문 작성

joshhoxy 2023. 4. 6. 22:21

IAM Policy default behavior

AWS IAM 정책의 허용 여부 결정 프로세스는 다음과 같습니다.

◾ 명시적 거부 : 요청에 대한 모든 정책 문서에서 Deny를 탐색하고 존재할 시 무조건 거부

◾ 명시적 허용 : 요청에 대해 Allow일 때 같은 요청에 대한 명시적 거부가 없다면 허용

 묵시적 거부 : 명시되지 않은 항목에 대한 모든 요청은 기본적으로 거부

기본적으로 정책 적용의 우선순위는 위 순서를 따르며 서로 Allow-Deny로 상충되는 항목이 있다면 Deny가 우선됩니다.

 

IAM Policy 작성 방법

IAM Policy는 JSON 형식으로 작성합니다.

 코드로 직접 작성

 시각적 편집기

이는 AWS 콘솔에서도 확인 가능합니다.

그 외 AWS Policy Generator 라는 웹사이트를 사용해도 좋습니다.

https://awspolicygen.s3.amazonaws.com/policygen.html  

구성 요소

IAM Policy 의 구성요소는 다음과 같습니다.

  • Version : 최신 2012-10-17 버전 사용 권고합니다.
  • Statement : 이 주요 정책 요소를 다음 요소의 컨테이너로 사용합니다. 정책에 설명문 둘 이상을 포함할 수 있습니다.
  • Sid(선택 사항) : 선택 설명문 ID를 포함하여 설명문들을 구분합니다.
  • Effect : Allow 또는 Deny를 사용하여 정책에서 액세스를 허용하는지 또는 거부하는지 여부를 설명합니다.
  • Principal (일부 상황에서만 필요) : 리소스 기반 정책을 생성하는 경우 액세스를 허용하거나 거부할 계정, 사용자, 역할 또는 연동 사용자를 표시해야 합니다. 사용자 또는 역할에 연결할 IAM 권한 정책을 생성하면 이 요소를 포함할 수 없습니다. 보안 주체는 사용자 또는 역할을 의미합니다.
  • Action : 정책이 허용하거나 거부하는 작업 목록을 포함합니다.
  • Resource (일부 상황에서만 필요) : IAM 권한 정책을 생성하는 경우 작업이 적용되는 리소스 목록을 지정해야 합니다. 리소스 기반 정책을 생성하는 경우 이 요소는 선택 사항입니다. 이 요소를 포함하지 않으면 작업이 적용되는 리소스는 정책이 연결된 리소스입니다.
  • Condition (선택 사항) : 정책에서 권한을 부여하는 상황을 지정합니다.

IAM Policy 예시

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "FirstStatement",
      "Effect": "Allow",
      "Action": ["iam:ChangePassword"],
      "Resource": "*"
    },
    {
      "Sid": "SecondStatement",
      "Effect": "Allow",
      "Action": "s3:ListAllMyBuckets",
      "Resource": "*"
    },
    {
      "Sid": "ThirdStatement",
      "Effect": "Allow",
      "Action": [
        "s3:List*",
        "s3:Get*"
      ],
      "Resource": [
        "arn:aws:s3:::confidential-data",
        "arn:aws:s3:::confidential-data/*"
      ],
      "Condition": {"Bool": {"aws:MultiFactorAuthPresent": "true"}}
    }
  ]
}

위 정책은
1) 모든 IAM User에 대해 비밀번호를 변경할 수 있는 권한

2) 특정 계정의 Bucekt의 리스트를 조회할 수 있는 권한

3) confidential-data 버킷 및, 버킷 안의 객체들에 대해 List*, Get* 즉 조회 및 내려받기 관련한 모든 권한

을 부여하는 정책문입니다.

 

'AWS > IAM' 카테고리의 다른 글

AWS_IAM 모범사례  (0) 2023.04.06