Amazon S3 버킷의 파일을 보호하려면 어떻게 해야 합니까?
파일을 보호하고 보안 모범 사례를 충족하기 위해 액세스 제한, 리소스 모니터링, 데이터 암호화로 Amazon S3 버킷을 보호하려고 합니다.
해결 방법
먼저 Amazon S3 버킷 유형이 범용인지, 디렉터리인지, 테이블인지 식별합니다. 그런 다음 버킷 유형에 맞는 보안 조치 및 모니터링 서비스를 선택합니다.
S3 리소스에 대한 액세스 제한
기본적으로 모든 S3 버킷은 비공개입니다. 명시적으로 버킷 권한을 부여받은 사용자만 버킷에 액세스할 수 있습니다.
S3 버킷 또는 객체에 대한 액세스를 제한하려면 다음 작업을 수행합니다.
- 특정 버킷 및 객체에 액세스할 수 있는 사용자를 지정하는 ID 기반 정책을 사용합니다. 사용자 정책을 만들고 테스트하려면 AWS 정책 생성기와 IAM 정책 시뮬레이터를 사용하십시오.
- 특정 버킷과 객체에 대한 액세스를 정의하는 버킷 정책을 사용합니다. 버킷 정책을 사용하여 AWS 계정 전체에 액세스 권한을 부여하고, 공개 또는 익명 권한을 부여하고, 조건에 따라 액세스를 허용하거나 차단하십시오.
참고: IAM 정책에서 사용자에게 액세스 권한을 부여한 경우에도 버킷 정책에 Deny 문을 사용하여 특정 AWS Identity and Access Management(AWS IAM) 사용자로 액세스를 제한할 수 있습니다. - Amazon S3 Block Public Access를 중앙 집중식으로 사용하여 퍼블릭 액세스를 제한합니다. 퍼블릭 액세스 차단 설정은 버킷 정책 및 객체 권한을 재정의합니다. 공개적으로 액세스할 수 있게 하지 않으려는 모든 계정 및 버킷에 대해 퍼블릭 액세스 차단을 활성화해야 합니다. Amazon S3는 모든 새 계정 및 버킷에 대해 기본적으로 퍼블릭 액세스 차단을 활성화합니다. S3 리소스에 대한 퍼블릭 액세스를 명시적으로 요구하는 경우에만 기능을 비활성화합니다. 버킷에서 퍼블릭 액세스 차단을 비활성화할 경우 버킷을 정기적으로 감사하십시오.
- 버킷과 객체에 액세스 제어 목록(ACL)을 설정합니다.
참고: 프로그래밍 방식으로 권한을 관리해야 하는 경우 ACL 대신 IAM 정책 또는 버킷 정책을 사용하십시오. 하지만 버킷 정책이 최대 파일 크기 20KB를 초과할 경우 ACL을 사용할 수 있습니다. 또는 ACL을 사용하여 Amazon S3 서버 액세스 로그 또는 Amazon CloudFront 로그에 대한 액세스 권한을 부여할 수 있습니다. - 서비스 제어 정책(SCP)을 사용하여 S3 보안 정책을 중앙에서 관리하고 조직의 모든 계정에 적용할 수 있습니다.
- 네트워크 수준에서 가상 프라이빗 클라우드(VPC) 엔드포인트, 버킷 정책의 IP 주소 기반 제한 및 S3용 AWS PrivateLink를 사용하여 액세스를 제한합니다. VPC 엔드포인트를 사용하면 인터넷 액세스 없이 Amazon S3에 비공개로 액세스할 수 있습니다.
- S3 액세스 포인트를 사용하여 여러 애플리케이션 또는 팀이 액세스하는 버킷의 보안 관리를 간소화합니다.
- 사용자가 지정된 기간 내에 객체를 삭제하거나 덮어쓸 수 없도록 S3 Object Lock을 구현합니다.
ACL을 사용하여 리소스를 보호하는 경우 다음 모범 사례를 구현하십시오.
- 버킷 또는 객체에 대한 Amazon S3 작업을 허용하는 ACL 권한을 검토합니다.
- 버킷에 대한 읽기 및 쓰기 액세스 권한을 부여받는 사람을 제한합니다.
- 모든 사람이 버킷 또는 객체에 액세스하도록 하려는 경우에만 모든 사람 그룹에 읽기 액세스 권한을 부여합니다.
- 모든 사람 그룹에 쓰기 액세스 권한을 부여하지 마십시오. 쓰기 액세스 권한이 있는 사람은 누구나 버킷에 객체를 추가할 수 있으며, AWS는 업로드한 모든 객체에 대해 요금을 청구합니다. 또한 쓰기 액세스 권한이 있는 사람은 누구나 버킷에서 객체를 삭제할 수 있습니다.
- 모든 인증된 AWS 사용자 그룹에는 활성 계정을 가진 모든 사용자가 포함되므로 이 그룹에는 쓰기 액세스 권한을 부여하지 마십시오. 계정에서 IAM 사용자의 액세스를 제어하려면 IAM 정책을 대신 사용하십시오. Amazon S3가 IAM 정책을 평가하는 방법에 대한 자세한 내용은 Amazon S3가 요청을 승인하는 방법을 참조하십시오.
- 새 버킷의 경우 Amazon S3가 기본적으로 S3 객체 소유권을 버킷 소유자 적용으로 설정하기 때문입니다. 그러면 ACL이 비활성화됩니다. 모든 객체를 완벽하게 제어하려면 ACL을 비활성화하고 액세스 제어에 버킷 정책 및 IAM 정책을 사용하는 것이 가장 좋습니다.
다음과 같은 방법으로 특정 작업에 대한 액세스를 제한할 수도 있습니다.
- 사용자가 객체를 삭제하거나 버킷 버전 관리를 비활성화하기 전에 다중 인증을 사용하도록 요구하려면 MFA 삭제를 구성합니다.
- 사용자가 특정 Amazon S3 API 작업을 호출하기 전에 AWS MFA 디바이스로 인증하도록 요구하려면 MFA로 보호되는 API 액세스를 설정합니다.
- S3 객체를 다른 사용자와 임시로 공유하는 경우 미리 서명된 URL을 만들어 객체에 대한 시간 제한 액세스 권한을 부여하십시오.
S3 리소스 모니터링
로깅을 활성화하고 S3 리소스를 모니터링하려면 다음 작업을 수행하십시오.
- 버킷의 객체에 대한 AWS CloudTrail 로깅을 활성화합니다. 기본적으로 CloudTrail은 버킷 수준의 작업만 모니터링합니다. GetObject와 같은 객체 수준 작업을 모니터링하려면 데이터 이벤트를 기록합니다. 데이터 이벤트의 예는 예: Amazon S3 객체에 대한 데이터 이벤트 기록을 참조하십시오.
- Amazon S3 서버 액세스 로깅을 활성화합니다. 서버 액세스 로그를 검토하는 방법에 대한 자세한 내용은 Amazon S3 서버 액세스 로그 형식을 참조하십시오.
- AWS Config를 사용하여 버킷 ACL과 버킷 정책을 모니터링하여 퍼블릭 읽기 또는 쓰기 액세스를 허용하는 위반이 있는지 확인하십시오. 자세한 내용은 s3-bucket-public-read-prohibited 및 s3-bucket-public-write-prohibited를 참조하십시오.
- IAM Access Analyzer를 사용하면 다른 AWS 계정에서 S3 리소스에 대한 액세스 권한을 부여하는 버킷 또는 IAM 정책을 검토할 수 있습니다.
- Amazon Macie를 활성화하면 버킷에 저장된 민감한 데이터, 버킷에 대한 광범위한 액세스 및 계정의 암호화되지 않은 버킷을 자동으로 식별할 수 있습니다.
- CloudTrail을 다른 AWS 서비스와 함께 사용하면 S3 리소스에서 특정 작업을 수행할 때 특정 프로세스를 호출할 수 있습니다. 예를 들어 Amazon EventBridge를 사용하여 S3 객체 수준 작업을 기록할 수 있습니다.
- AWS Trusted Advisor의 S3 버킷 권한 검사를 사용하여 오픈 액세스 권한이 있는 버킷에 대한 알림을 받을 수 있습니다. 자세한 내용은 AWS Trusted Advisor 검사 참조를 확인하십시오.
암호화를 사용하여 데이터 보호
전송 중에 암호화가 필요한 경우 HTTPS 프로토콜을 사용하여 Amazon S3와 데이터를 주고 받을 때 전송 중 데이터를 암호화하십시오. 모든 AWS SDK 및 AWS 도구는 기본적으로 HTTPS를 사용합니다.
참고: 타사 도구를 사용하여 Amazon S3와 상호 작용하는 경우 타사에 문의하여 해당 도구가 HTTPS 프로토콜도 지원하는지 확인하십시오.
저장 데이터를 암호화해야 하는 경우 서버 측 암호화(SSE) 옵션인 Amazon S3 관리형 키(SSE-S3), AWS Key Management Service(AWS KMS)(SSE-KMS) 또는 고객 제공 키(SSE-C)를 사용하십시오. SSE는 CloudTrail을 통해 추가 보호 계층과 상세한 감사 추적을 제공합니다. 버킷에 객체를 쓸 때 SSE 파라미터를 지정할 수 있습니다. 또한 ](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html)SSE-S3 또는 SSE-KMS를 사용하여 버킷의 기본 암호화[를 활성화할 수 있습니다.
참고: Amazon S3는 모든 새 버킷에 SSE-S3를 자동으로 활성화합니다.
클라이언트 측 암호화가 필요한 경우 클라이언트 측 암호화를 사용한 데이터 보호를 참조하십시오.
관련 정보
다른 AWS 계정의 사용자가 MFA를 사용하여 Amazon S3 버킷에 액세스하도록 하려면 어떻게 해야 합니까?
관련 콘텐츠
- 질문됨 일 년 전
- 질문됨 일 년 전
- 질문됨 일 년 전

