Ssoon
S3 Security Exercises - Access Key & Bucket ACL 설정 본문
AWS Hacking & Security Study
S3 Security Exercises - Access Key & Bucket ACL 설정
구구달스 2023. 8. 28. 18:53CloudNet@가시다님이 진행하는 "AWS Hacking & Security Study" 1기 스터디입니다.
# AWS Storage Immersion Day - S3 Security Best Practices 를 참조하였습니다.
✅ AWS CloudFormation 스택 배포
- 링크 클릭 후 생성 (가시다님 제공 실습환경)
✔ KeyPair 를 선택합니다.
✔ 스택을 생성합니다.
✅ IAM 사용자에 대한 액세스 키 생성
- Access Key 는 IAM 사용자 또는 AWS 계정 루트 사용자의 장기 자격 증명입니다.
- Access Key 를 사용하여 AWS CLI 또는 AWS API 에 대한 프로그래밍 방식 요청에 서명할 수 있습니다.
💠 Access Key = Access Key ID + Secret Access Key
✔ Access Key ID
- AWS 계정을 식별하는 고유한 식별자입니다.
- 20자의 길이로 된 알파벳과 숫자의 조합입니다.
- AWS API 호출 시 식별되는 사용자를 나타냅니다.
✔ Secret Access Key
- Access Key ID와 함께 사용되며, 계정에 대한 액세스 권한을 제어합니다.
- 40자의 길이로 된 알파벳과 숫자의 조합입니다.
[user1]
aws_access_key_id = AKIATU4765ECK6YYJTOY
aws_secret_access_key = 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
[user2]
aws_access_key_id = AKIATU4765ECKNY5DVN6
aws_secret_access_key = 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
✅ AWS CLI 구성
✔ CLI 접속을 위해 EC2의 Public IP 정보를 확인 후 해당 EC2에 접속합니다.
✔ AWS CLI를 설정합니다
- Access Key ID 와 Secret Access Key 를 공백으로 둡니다
✔ AWS CLI에서 사용할 자격 증명 파일을 생성합니다.
✔ 텍스트 편집기에서 업데이트된 자격 증명 파일을 복사
✅ Amazon S3 버킷 생성
✔ 새로운 Bucket 을 생성합니다.
✔ Bucket 생성시 기본으로 public access 가 block(차단) 되어 있습니다.
✅ 공용 액세스 차단 및 버킷 ACL 사용 안 함
✔ public access 를 허용 합니다.
✔ Block public access 에 Block(차단)을 해지합니다.
- 공개적인 액세스를 방지하고 버킷과 그 안의 객체들이 인터넷을 통해 무단으로 접근되는 것을 방지하기 위한 보안 기능
- Block Public Access to Buckets and Objects Granted Through New Access Control Lists (ACLs)
- 새로운 액세스 제어 목록(ACL)을 사용하여 버킷 또는 객체에 공개 액세스를 설정하려고 할 때 차단됩니다.
- 새로운 ACL을 통해 공개 액세스를 설정해도, 이 옵션이 액세스를 차단하여 실제로는 액세스 권한이 적용되지 않습니다.
- 이미 공개 액세스가 설정된 기존의 액세스 제어 목록(ACL)에는 영향을 주지 않습니다. 이 옵션은 새로운 ACL에만 적용됩니다.
- Block public access to buckets and objects granted through any access control lists (ACLs)
- 모든 액세스 제어 목록(ACL)을 사용하여 버킷 또는 객체에 공개 액세스를 설정하려고 할 때 차단됩니다.
- 어떤 ACL을 통해 공개 액세스를 설정하더라도, 이 옵션이 액세스를 차단하여 실제로는 액세스 권한이 적용되지 않습니다.
- 이미 공개 액세스가 설정된 기존의 액세스 제어 목록(ACL)에도 영향을 주며, 이 옵션을 활성화하면 해당 설정이 무시됩니다.
- Block public access to buckets and objects granted through new public bucket or access point policies
- 새로운 공개 버킷 정책이나 액세스 포인트 정책을 사용하여 버킷이나 객체에 공개 액세스를 설정하려고 할 때 차단됩니다.
- 새로운 정책을 통해 공개 액세스를 설정해도, 이 옵션이 액세스를 차단하여 실제로는 액세스 권한이 적용되지 않습니다.
- 이미 공개 액세스가 설정된 기존의 버킷 정책이나 액세스 포인트 정책에는 영향을 주지 않습니다. 이 옵션은 새로운 정책에만 적용됩니다.
- Block public and cross-account access to buckets and objects through any public bucket or access point policies
- 공개 버킷 정책이나 액세스 포인트 정책을 사용하여 버킷이나 객체에 공개 액세스를 설정하려고 할 때 차단됩니다.
- 다른 AWS 계정으로부터의 액세스를 허용하는 정책이 설정되어 있을 때도, 이 옵션이 액세스를 차단하여 실제로는 액세스 권한이 적용되지 않습니다.
- 이미 공개 액세스가 설정된 기존의 버킷 정책이나 액세스 포인트 정책에는 영향을 주지 않습니다. 이 옵션은 새로운 정책에만 적용됩니다.
✔ ACL을 활성화 합니다
- "Object Ownership"
- 객체(파일 또는 데이터 아이템)에 대한 소유자를 지칭하는 개념
- S3에서 객체는 버킷 내에서 데이터를 나타내는 기본 단위 => 객체들은 특정 사용자나 역할에 의해 생성 => 객체를 생성한 주체가 소유자 => 소유자는 해당 객체에 대한 권한을 관리하고 조절하는 주체
- 다른 AWS 계정으로부터 이 버킷에 업로드되는 객체의 소유권을 조절하고, 액세스 제어 목록 (ACLs)을 활용하여 객체에 대한 접근 권한을 설정할 수 있습니다. 객체 소유권은 보안과 액세스 관리에 중요한 역할을 하며, 이를 통해 데이터의 소유자가 액세스를 제어할 수 있는 구조를 만들 수 있습니다.
- ACLs Disabled (Recommended)
- 객체 소유권 편집 시에 Access Control Lists (ACLs)를 사용하지 않도록 설정하는 것을 의미합니다.
- Access Control Lists (ACLs)은 객체에 대한 개별적인 액세스 권한을 설정하는 방법 중 하나입니다.
- 객체 소유자는 주로 IAM 정책이나 버킷 정책을 통해 객체에 대한 액세스 권한을 설정합니다.
- ACLs를 비활성화하면 객체의 보안을 조금 더 중앙 집중화하여 관리할 수 있으며, 복잡한 권한 구성을 피할 수 있습니다.
- ACLs Enabled
- 객체 소유권 편집 시에 Access Control Lists (ACLs)를 사용하도록 설정하는 것을 의미합니다.
- 객체 소유자는 개별 객체에 대한 ACLs를 설정하여 액세스 권한을 조정할 수 있습니다.
- 개별적인 객체에 대한 세부적인 권한을 설정하고 싶을 때 유용합니다.
- 특정 사용자나 그룹에 대한 객체 액세스 권한을 조정하려는 경우에 활용됩니다.
- Bucket Owner Preferred
- 객체 소유권을 버킷 소유자에게 선호하는 방식으로 설정하는 옵션
- 객체의 실제 생성자가 다른 AWS 계정이더라도, 객체 소유자로서 버킷 소유자가 지정됩니다.
- 객체의 소유자는 버킷 소유자로 설정되므로, 해당 버킷의 소유자가 객체에 대한 모든 액세스 권한을 가집니다.
- 다른 AWS 계정에서 객체를 업로드한 경우에도, 액세스 권한을 설정하는 주체는 버킷 소유자입니다.
- Object Writer
- 객체의 실제 생성자를 객체 소유자로 설정하는 방식
- 객체를 생성한 AWS 계정이 해당 객체의 소유자가 됩니다.
- 객체의 생성자가 해당 객체에 대한 액세스 권한을 조절하며, 일반적으로 버킷 소유자는 해당 객체에 대한 권한을 가지지 않습니다.
- 다른 AWS 계정에서 객체를 업로드한 경우, 그 계정이 객체의 소유자가 됩니다.
"Bucket owner preferred"를 선택하면 버킷 소유자가 객체에 대한 소유자로 설정되어 액세스를 통제하게 되고, "Object writer"를 선택하면 객체를 생성한 계정이 객체의 소유자로 설정되어 액세스를 조절할 수 있습니다.
✔ Hello.txt 파일 (아무파일이나 상관없음) 을 앞서 생성한 S3 Bucket 에 업로드합니다.
'AWS Hacking & Security Study' 카테고리의 다른 글
AWS IAM Workshop - 자격증명 기반 정책(Identity-based policies) (0) | 2023.09.05 |
---|---|
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 |
S3 Security Exercises - HTTPS 필요 / SSE-S3 암호화 필요 (0) | 2023.08.28 |
Comments