Ssoon

AWS IAM Workshop - 자격증명 기반 정책(Identity-based policies) 본문

AWS Hacking & Security Study

AWS IAM Workshop - 자격증명 기반 정책(Identity-based policies)

구구달스 2023. 9. 5. 00:59
CloudNet@가시다님이 진행하는 "AWS Hacking & Security Study" 1기 스터디입니다.
# AWS IAM Workshop 를 참조하였습니다.

💠 권한을 제한하는 용도 (Guardrail):

  • 목적: AWS 리소스 및 서비스에 대한 액세스를 제한하고 보안을 강화하기 위해 사용됩니다.
  • 사용 사례: 예를 들어, 특정 사용자나 그룹이 특정 리소스에 대한 액세스를 허용하지 않도록 막거나, 특정 작업을 수행하는 데 필요한 권한을 최소한으로 제한하는 데 사용됩니다.
  • 예시: EC2 인스턴스를 중지하거나 삭제하는 권한을 특정 사용자에게 부여하지 않음으로써, 실수로 인한 인스턴스 손상을 방지할 수 있습니다. 
  SCP 정책 (Organization SCPs) 권한 경계 정책 (Permissions boundaries) 세션 정책 (Session policies)
목적 AWS 조직 단위에서 전체적인 보안 정책을 설정하여 조직 내 모든 계정에 적용합니다. 사용자 또는 역할에 부여된 권한의 범위를 제한하고 AWS 리소스의 접근을 제한합니다. AWS 리소스에 대한 일시적인 권한을 제한하고, 임시로 상황에 따라 권한을 조절합니다.
범위 AWS 조직 단위에서 전체적으로 적용됩니다. 개별 IAM 사용자 또는 역할에 대한 설정으로, 사용자 또는 역할마다 다르게 설정 가능합니다. IAM 사용자 또는 역할의 세션 동안만 적용되며, 요청이 처리되면 즉시 만료됩니다.
권한 변경 및 관리 AWS 조직 관리자가 조직 SCP 정책을 관리하고 조직 단위로 설정합니다. IAM 정책을 생성하고 사용자 또는 역할에 직접 연결하여 관리합니다. 사용자 또는 역할의 세션 정책은 각 세션에 대해 독립적으로 설정하고 변경할 수 있습니다.
예시 - 모든 조직 계정에서 특정 서비스의 사용을 금지하는 정책 설정 가능 - 특정 IAM 사용자가 특정 S3 버킷에만 접근할 수 있도록 권한 제한 가능 - 임시로 특정 작업을 수행하는 동안만 특정 리소스에 대한 접근을 허용하는 정책 설정 가능
적용 시점 및 지속성 적용 시점: 정책 설정 시점부터 조직 내 모든 계정에 즉시 적용됩니다.
지속성: 설정이 변경되거나 해제되지 않는 한 지속적으로 적용됩니다.
적용 시점: IAM 사용자 또는 역할 생성 또는 수정 시점부터 즉시 적용됩니다.
지속성: 사용자 또는 역할에 직접 연결된 한 지속적으로 적용됩니다.
적용 시점: 사용자 또는 역할이 세션을 시작할 때 즉시 적용됩니다.
지속성: 세션이 종료되면 자동으로 해제됩니다.
용도 및 주요 역할 - 보안 정책 강화
- 조직 전체의 권한을 일괄적으로 관리 - 조직의 최상위 보안 정책
- IAM 사용자 또는 역할에 대한 권한을 제한하여 원치 않는 액세스를 방지
- IAM 사용자 또는 역할의 범위를 제한하여 리소스 보호
- 일시적으로 특정 작업에 대한 권한을 부여
- 세션 동안만 필요한 권한을 설정하여 원활한 작업 수행
주의 사항 - 신중하게 설정해야 하며, 조직 단위로 적용되므로 모든 계정에 영향을 미침 - 사용자 또는 역할의 권한을 잘 이해하고 설정해야 함
- 권한을 제한하면 작업 수행에 제약이 생길 수 있음
- 세션 정책이 만료되면 자동으로 권한이 해제되므로 관리가 필요함
- 세션 정책을 신중하게 구성해야 함

💠 권한을 부여하는 용도 (Grant):

  • 목적: AWS 리소스 및 서비스에 대한 액세스 권한을 특정 사용자, 그룹 또는 역할에게 부여하는 데 사용됩니다.
  • 사용 사례: 특정 사용자나 그룹에게 필요한 권한을 부여하여 작업을 수행하거나 AWS 리소스를 관리할 수 있게 합니다.
  • 예시: 개발팀 그룹에게 S3 버킷에 대한 읽기 및 쓰기 권한을 부여하여 그룹 멤버가 버킷에 파일을 업로드하고 다운로드할 수 있도록 합니다.
  자격증명 기반 정책 (Identity-based policies) 리소스 기반 정책 (Resource-based policies) 액세스 제어 리스트 (Access Control Lists, ACLs)
목적 특정 IAM 사용자, 그룹 또는 역할에 대한 권한을 부여합니다. 특정 AWS 리소스에 대한 액세스 권한을 부여하고 제한합니다. 특정 S3 버킷 또는 객체에 대한 액세스 권한을 부여하고 제한합니다.
적용 대상 IAM 사용자, 그룹 또는 역할에 직접 연결됩니다. 특정 AWS 리소스에 직접 연결됩니다. 특정 S3 버킷 또는 객체에 직접 연결됩니다.
범위 특정 IAM 사용자 또는 그룹 또는 전체 계정에 적용 가능합니다. 특정 리소스 또는 리소스 그룹 또는 전체 계정에 적용 가능합니다. 특정 S3 버킷 또는 객체 또는 전체 버킷에 적용 가능합니다.
권한 변경 및 관리 IAM 정책을 생성하고 사용자 또는 그룹 또는 역할에 직접 연결하여 관리합니다. 리소스 정책을 생성하고 리소스에 직접 연결하여 관리합니다. S3 버킷 또는 객체에 대한 ACL을 설정하고 관리합니다.
예시 - 특정 IAM 사용자에게 S3 버킷에 대한 읽기 및 쓰기 권한 부여 - S3 버킷에 대한 공개 읽기 액세스 권한을 부여하는 리소스 정책 설정 - 특정 사용자에게 특정 S3 객체에 대한 읽기 액세스 권한 부여
적용 시점 및 지속성 적용 시점: IAM 사용자 또는 역할에 연결 시점부터 즉시 적용됩니다.
지속성: 사용자 또는 역할에 연결된 한 지속적으로 적용됩니다.
적용 시점: 리소스 정책이 설정되고 리소스에 연결 시점부터 즉시 적용됩니다.
지속성: 리소스에 연결된 한 지속적으로 적용됩니다.
적용 시점: ACL이 설정된 시점부터 즉시 적용됩니다.
지속성: ACL 설정이 변경되지 않는 한 지속적으로 적용됩니다.
용도 및 주요 역할 - IAM 사용자, 그룹 또는 역할의 권한 관리
- 사용자 또는 그룹마다 다른 권한을 부여할 수 있음
- 리소스에 대한 액세스 권한 제어 - AWS 리소스의 보안 및 권한 관리 - S3 버킷 또는 객체에 대한 세부적인 액세스 제어
- 공개 및 비공개 객체 권한 설정
주의 사항 - 사용자 또는 그룹에 권한을 신중하게 부여해야 하며, 잘못된 권한 부여를 방지해야 합니다. - 리소스 정책을 신중하게 구성해야 하며, 필요한 권한만 부여해야 합니다. - ACL을 설정하고 관리하는 데 주의가 필요하며, 공개 액세스를 방지해야 합니다.

 

자격증명 기반 정책(Identity-based policies) 

  • AWS Identity and Access Management (IAM)을 사용하여 AWS 리소스에 대한 액세스 권한을 부여하고 제한하는 데 사용되는 권한 정의 도구
  • AWS 계정 내에서 IAM 사용자, 그룹, 또는 역할에 직접 연결
  • 자격증명은 AWS에서 제공하는 사용자 아이디와 비밀번호 또는 액세스 키와 같은 인증 수단을 나타냅니다.
  AWS 관리형 정책 (AWS Managed policies) 고객 관리형 정책 (Customer Managed policies) 인라인 정책 (In-line policies)
소유 및 관리 AWS가 소유하고 관리하는 정책입니다. AWS 계정 소유자가 직접 생성 및 관리하는 정책입니다. IAM 사용자, 그룹 또는 역할에 직접 연결되고 사용자가 직접 관리합니다.
업데이트 및 버전 관리 AWS에서 자동으로 업데이트되며 버전 관리됩니다. 사용자가 직접 버전 관리하고 업데이트를 수행해야 합니다. 사용자가 직접 버전 관리하고 업데이트를 수행해야 합니다.
다양한 정책 제공 다양한 AWS 관리형 정책이 제공되며 특정 시나리오에 맞게 선택 가능합니다. 고객이 필요한 권한을 정의하는 데 자유로움 고객이 필요한 권한을 정의하고 관리하는 데 자유로움
권장 사용 사례 일반적인 AWS 서비스 및 작업에 대한 권한을 부여하는 데 사용됩니다. 특정 비즈니스 요구사항이나 정책에 따라 권한을 부여하는 데 사용됩니다. 특정 사용자, 그룹 또는 역할에 대한 맞춤형 권한을 부여하는 데 사용됩니다.
공유 가능 여부 AWS 계정 간에 공유 가능합니다. AWS 계정 간에 공유 가능합니다. 정책을 직접 사용자 또는 역할에 연결하므로 공유할 필요가 없습니다.
권한 범위 및 관리 권한 범위가 정책에 미리 정의되며, 여러 사용자 또는 역할에게 적용 가능합니다. 권한 범위를 사용자가 직접 정의하고, 여러 사용자 또는 역할에게 적용 가능합니다. 각 사용자 또는 역할에 대한 정책을 독립적으로 설정하고 관리합니다.
역할 변경 및 삭제 AWS 관리형 정책은 AWS에서 관리하므로 변경 또는 삭제할 수 없습니다. 사용자가 직접 생성하고 관리하므로 변경 및 삭제가 가능합니다. 사용자가 직접 생성하고 관리하므로 변경 및 삭제가 가능합니다.

💠 AWS 관리형 정책 (AWS Managed policies)

  • AWS에서 미리 정의된 보안 정책
  • AWS에서 관리하며 AWS 계정 소유자가 직접 수정할 수 없습니다

💠 고객 관리형 정책 (Customer Managed policies)

  • 사용자 또는 그룹에게 특정 권한을 부여하고 제어하기 위해 AWS 계정 소유자가 직접 만들고 관리하는 보안 정책

💠 인라인 정책 (In-line 정책)

  • AWS Identity and Access Management (IAM)에서 사용자, 그룹, 또는 역할에 직접 연결되어 관리되는 보안 정책
  • 특정 IAM 사용자, 그룹 또는 역할에 직접 연결되며, 다른 사용자나 역할과 공유되지 않습니다. 
  • 특정 사용자 또는 역할에 대한 맞춤형 권한을 부여하고 관리할 때 매우 유용

 

 사용자 권한 추가 (AWS 관리형 정책)

  •  Super-Pro AmazonEC2ReadOnlyAccess 정책을 추가

사용자 선택

사용자 권한 확인

  • [Super]사용자 그룹에 속해있기 때문에 [Super]사용자 그룹에 부여된 [AdministratorAccess]권한을 상속받은 상태

사용자 권한 추가

  • AWS 관리형 정책인 AmazonEC2ReadOnlyAccess를 부여

최종 확인 및 적용

사용자 권한 확인

  • 명시적 Deny가 없는 상황에서는 2개 이상의 자격증명정책이 적용될시에는 OR로 적용
  • Super-Pro로 로그인

인스턴스를 생성합니다.

  • Super-Pro-EC2-Create

  • 키 페어 없이 계속 진행

  • Super-Pro에 적용된 AdministratorAccess정책과 AmazonEC2ReadOnlyAccess정책은 합집합 형태로 정책평가가 이루어져 EC2를 정상적으로 생성할 수 있음

✅ 인라인 정책 (In-line policies) 

✔ S3 bucket 을 생성

  • Super-Pro로 로그인

✔ Dev-Intern 로 로그인

  • S3에 대해 볼 수 있는 권한이 없음

✔ 인라인정책 Dev-Intern에게 S3의 목록,읽기 권한을 추가 

사용자 추가

인라인 정책 추가

서비스: S3 액세스 선택

✔ Access level : ListAllMyBuckets, ListBucket 선택 

List (목록 보기) - AWS 리소스 목록을 볼 수 있는 권한입니다.
Read (읽기) - AWS 리소스의 상태, 설정 및 구성을 읽을 수 있는 권한입니다.
Write (쓰기) - AWS 리소스에 대한 변경 작업을 수행할 수 있는 권한입니다.
Permissions Management (권한 관리) - 다른 사용자 또는 역할에 대한 권한을 부여하거나 수정할 수 있는 권한입니다.
Tagging (태깅) - AWS 리소스에 태그를 추가하거나 수정할 수 있는 권한입니다.

 

 정책 생성 

생성된 정책 확인

Dev-Intern 계정에서 S3 bucket 목록 확인

Comments