Ssoon
AWS IAM Workshop - 자격증명 기반 정책(Identity-based policies) 본문
AWS Hacking & Security Study
AWS IAM Workshop - 자격증명 기반 정책(Identity-based policies)
구구달스 2023. 9. 5. 00:59CloudNet@가시다님이 진행하는 "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 목록 확인
'AWS Hacking & Security Study' 카테고리의 다른 글
AWS IAM Workshop - 리소스 기반 정책(Resource-based policies) (0) | 2023.09.06 |
---|---|
AWS IAM Workshop - 권한 경계(Permissions boundaries) (0) | 2023.09.06 |
AWS IAM Workshop - IAM 사용자(User) & IAM 사용자 그룹(User Group) (0) | 2023.09.04 |
S3 Security Exercises - S3 VPC 엔드포인트에 대한 액세스 제한 / AWS Config 규칙을 사용하여 퍼블릭 버킷 감지 (0) | 2023.08.30 |
S3 Security Exercises - Public ACL 차단 / S3 Public 액세스 차단 (0) | 2023.08.30 |
Comments