기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon S3 버킷에 대한 노출 문제 해결
참고
Security Hub는 평가판 릴리스이며 변경될 수 있습니다.
AWS Security Hub는 Amazon Simple Storage Service(S3) 버킷에 대한 노출 조사 결과를 생성할 수 있습니다.
Security Hub 콘솔에서는 노출 조사 결과와 관련된 Amazon S3 버킷과 해당 식별 정보가 조사 결과 세부 정보의 리소스 섹션에 나열됩니다. 프로그래밍 방식으로 Security Hub API의 GetFindingsV2 작업을 통해 리소스 세부 정보를 검색할 수 있습니다.
노출 조사 결과와 관련된 리소스를 식별한 후 필요하지 않은 경우 리소스를 삭제할 수 있습니다. 필수적이지 않은 리소스를 삭제하면 노출 프로필과 AWS 비용을 줄일 수 있습니다. 리소스가 필요한 경우 다음 권장 문제 해결 단계를 수행하여 위험을 완화하세요. 문제 해결 주제는 특성 유형에 따라 구분됩니다.
단일 노출 조사 결과에는 여러 문제 해결 주제에서 식별된 문제가 포함됩니다. 반대로, 하나의 문제 해결 주제만 처리하여 노출 조사 결과를 해결하고 심각도 수준을 낮출 수 있습니다. 위험 해결 방법은 조직의 요구 사항과 워크로드에 따라 달라집니다.
참고
이 주제에 제공된 문제 해결 지침은 다른 AWS 리소스에서 추가 상담이 필요할 수 있습니다.
목차
Amazon S3 버킷의 구성 오류 특성
다음은 Amazon S3 버킷의 잘못된 구성 특성과 제안된 수정 단계입니다.
Amazon S3 버킷의 버전 관리가 비활성화되었습니다.
Amazon S3 버전 관리를 사용하면 객체의 여러 변형을 동일한 버킷에 유지할 수 있습니다. 버전 관리가 비활성화되면 Amazon S3는 각 객체의 최신 버전만 저장합니다. 즉, 객체를 실수로 또는 악의적으로 삭제하거나 덮어쓰면 복구할 수 없습니다. 버전 관리가 활성화된 버킷은 우발적인 삭제, 애플리케이션 장애 및 데이터의 무단 수정 또는 삭제가 발생할 수 있는 랜섬웨어 공격과 같은 보안 사고로부터 보호합니다. 보안 모범 사례에 따라 분실 시 다시 생성하기 어렵거나 불가능한 중요한 데이터가 포함된 버킷에 대해 버전 관리를 활성화하는 것이 좋습니다.
-
버전 관리 활성화 - 버킷에서 Amazon S3 버전 관리를 활성화하려면 Amazon Simple Storage Service 사용 설명서의 버킷에서 버전 관리 활성화를 참조하세요. 버전 관리를 활성화할 때는 수명 주기 규칙을 구현하여 스토리지를 관리하는 것이 좋습니다. 버전 관리는 객체의 여러 복사본을 유지 관리하기 때문입니다.
Amazon S3 버킷에 객체 잠금이 비활성화되어 있음
Amazon S3 객체 잠금은 Amazon S3 객체에 대해 WORM(Writewrite-once-read-many) 모델을 제공하므로 고정 기간 동안 또는 무기한으로 삭제되거나 덮어쓰이지 않습니다. 객체 잠금이 비활성화되면 객체가 랜섬웨어에 의한 우발적이거나 악의적인 삭제, 수정 또는 암호화에 취약할 수 있습니다. 객체 잠금은 변경 불가능한 데이터 스토리지가 필요한 규제 요구 사항을 준수하고 데이터 암호화를 시도할 수 있는 랜섬웨어와 같은 정교한 위협으로부터 보호하는 데 특히 중요합니다. 객체 잠금을 활성화하면 보존 정책을 추가된 데이터 보호 계층으로 적용하고 중요한 데이터에 대한 변경 불가능한 백업 전략을 생성할 수 있습니다. 보안 모범 사례에 따라 객체가 악의적으로 수정되지 않도록 객체 잠금을 활성화하는 것이 좋습니다.
-
객체 잠금은 새 버킷을 생성할 때만 활성화할 수 있으므로 객체 잠금이 활성화된 새 버킷을 생성해야 합니다. 대규모 마이그레이션의 경우 배치 작업을 사용하여 객체를 새 버킷에 복사하는 것이 좋습니다. 객체를 잠그기 전에 버킷에서 Amazon S3 버전 관리 및 객체 잠금도 활성화해야 합니다. 객체 잠금은 새 버킷에서만 활성화할 수 있으므로 객체 잠금이 활성화된 새 버킷으로 기존 데이터를 마이그레이션해야 합니다. Amazon S3 객체 잠금 구성 - 버킷에서 객체 잠금을 구성하는 방법에 대한 자세한 내용은 Amazon Simple Storage Service 사용 설명서의 ConfiguringAmazon S3Object Lock을 참조하세요. 객체 잠금을 설정한 후 환경에 따라 적절한 보존 모드를 선택합니다.
Amazon S3 버킷은 AWS KMS 키로 저장 시 암호화되지 않습니다.
Amazon S3는 Amazon S3 관리형 키를 사용한 서버 측 암호화를 모든 새 버킷의 기본 암호화 수준으로 적용합니다. Amazon S3 관리형 키는 강력한 암호화 보호를 제공하지만 AWS Key Management Service 키와 동일한 수준의 액세스 제어 및 감사 기능을 제공하지는 않습니다. KMS 키를 사용하는 경우 객체에 액세스하려면 Amazon S3 버킷과 객체를 암호화한 KMS 키 모두에 대한 권한이 필요합니다. 이는 암호화된 객체에 액세스할 수 있는 사용자와 암호화 키 사용에 대한 포괄적인 감사 로깅을 세부적으로 제어해야 하는 민감한 데이터에 특히 중요합니다. 보안 모범 사례에 따라 KMS 키를 사용하여 민감한 데이터가 포함된 버킷을 암호화하거나 규정 준수 요구 사항이 엄격한 환경에 사용하는 것이 좋습니다.
-
Amazon S3 버킷 키 구성
새 객체에 Amazon S3 버킷 키를 사용하도록 버킷을 구성하려면 Amazon Simple Storage Service 사용 설명서의 새 객체에 SSE-KMS와 함께 Amazon S3 버킷 키를 사용하도록 버킷 구성을 참조하세요. 기존 객체를 암호화하는 방법에 대한 자세한 내용은 AWS 스토리지 블로그의 Amazon S3 배치 작업을 사용하여 객체 암호화
를 참조하세요.
AWS KMS 암호화를 구현할 때는 다음 사항을 고려하세요.
-
키 관리 - AWS 관리형 키 또는 고객 관리형 키(CMK)를 사용할지 여부를 결정합니다. CMKs 고객에게 키의 수명 주기 및 사용량을 완벽하게 제어합니다. 이 두 키 유형의 차이점에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서의 AWS KMS 키를 참조하세요.
-
키 교체 - 추가 보안 조치를 위해 KMS 키에 대해 자동 키 교체를 활성화합니다. 자세한 내용은 AWS Key Management Service 개발자 안내서의 자동 키 교체 활성화를 참조하세요.
버전이 지정된 Amazon S3 버킷에서 다중 인증(MFA) 삭제가 비활성화됨
다중 인증(MFA) 삭제는 Amazon S3 버킷에 대한 추가 보안 계층을 제공합니다. 파괴적인 Amazon S3 작업을 위해서는 멀티 팩터 인증이 필요합니다. MFA 삭제가 비활성화되면 적절한 권한이 있는 사용자는 추가 인증 문제 없이 객체 버전을 영구적으로 삭제하거나 버킷의 버전 관리를 일시 중지할 수 있습니다. MFA 삭제를 활성화하면 데이터의 무단 또는 우발적 삭제로부터 보호하여 랜섬웨어 공격, 내부자 위협 및 운영 오류에 대한 보호를 강화할 수 있습니다. MFA 삭제는 무단 삭제로부터 보호해야 하는 중요하거나 규정 준수에 민감한 데이터가 포함된 버킷에 특히 유용합니다. 보안 모범 사례에 따라 Amazon S3 버킷에 대해 MFA를 활성화하는 것이 좋습니다.
-
MFA 유형 검토
AWS 는 다음과 같은 MFA 유형을 지원합니다. 물리적 디바이스를 사용한 인증은 일반적으로 더 엄격한 보안 보호를 제공하지만 모든 유형의 MFA를 사용하는 것이 MFA를 비활성화하는 것보다 더 안전합니다.
-
리소스 정책 수준에서 MFA 적용
버킷 정책의
aws:MultiFactorAuthAge
조건 키를 사용하여 민감한 작업에 MFA를 요구합니다. 자세한 내용은 Amazon Simple Storage Service 사용 설명서의 MFA 요구 섹션을 참조하세요. -
MFA 활성화
MFA 삭제를 활성화하려면 먼저 Amazon S3 버킷에서 버전 관리가 활성화되어 있는지 확인합니다. MFA 삭제는 버전 관리가 활성화된 버킷에서만 지원됩니다. Amazon S3 버전 관리를 활성화하는 방법에 대한 자세한 내용은 Amazon Simple Storage Service 사용 설명서의 버킷에서 버전 관리 활성화를 참조하세요. Amazon S3 콘솔을 통해 MFA 삭제를 활성화할 수 없습니다. Amazon S3 API 또는를 사용해야 합니다 AWS CLI. 자세한 내용은 Amazon Simple Storage Service 사용 설명서의 MFA 삭제 구성을 참조하세요.
Amazon S3 버킷을 사용하면 다른 AWS 계정의 보안 주체가 버킷 권한을 수정할 수 있습니다.
Amazon S3 버킷 정책은 버킷 및 객체에 대한 액세스를 제어합니다. 버킷 정책에서 다른 AWS 계정의 보안 주체가 버킷 권한을 수정하도록 허용하는 경우 권한이 없는 사용자는 버킷을 재구성할 수 있습니다. 외부 보안 주체 자격 증명이 손상되면 보호되지 않은 사용자가 버킷을 제어하여 데이터 침해 또는 서비스 중단을 초래할 수 있습니다. 표준 보안 원칙에 따라 권한 관리 작업을 신뢰할 수 있는 보안 주체로만 제한하는 것이 AWS 좋습니다.
-
버킷 정책 검토 및 식별
노출에서 ARN 필드에서 Amazon S3 버킷을 식별합니다. Amazon S3 콘솔에서 버킷을 선택하고 권한 탭으로 이동하여 버킷 정책을 검토합니다. 버킷에 연결된 권한 정책을 검토합니다. 보안 주체 문에 표시된 대로 계정 외부의 보안 주체에 대한 액세스를 허용하는
s3:PutBucketPolicy, s3:PutBucketAcl, s3:DeleteBucketPolicy, s3:*
또는 정책 문과 같은 작업을 부여하는 정책 문을 찾습니다. -
버킷 정책 수정
버킷 정책을 수정하여 다른 AWS 계정에 부여된 작업을 제거하거나 제한합니다.
-
외부 계정에 권한 관리 작업을 부여하는 정책 설명을 제거합니다.
-
교차 계정 액세스가 필요한 경우 광범위한 권한을 버킷 권한 관리가 포함되지 않은 특정 작업
(s3:*)
으로 바꿉니다.
버킷 정책 수정에 대한 자세한 내용은 Amazon S3 사용 설명서의 Amazon S3 콘솔을 사용하여 버킷 정책 추가를 참조하세요. Amazon S3
-
Amazon S3 버킷의 연결성 특성
다음은 Amazon S3 버킷의 연결성 특성과 제안된 문제 해결 단계입니다.
Amazon S3 버킷에 퍼블릭 액세스 권한이 있음
기본적으로 Amazon S3 버킷과 객체는 프라이빗이지만 다양한 구성을 통해 퍼블릭으로 만들 수 있습니다. 퍼블릭 액세스를 허용하도록 버킷 정책, 액세스 포인트 정책 또는 객체 권한을 수정하면 민감한 데이터가 노출될 위험이 있습니다.
-
버킷 평가
조직 정책, 규정 준수 요구 사항 또는 데이터 분류에 따라 버킷을 비공개로 만들 수 있는지 평가합니다. 퍼블릭 또는 다른에 버킷 액세스 권한을 부여하지 않으려는 경우 나머지 수정 지침을 AWS 계정따릅니다.
-
버킷을 프라이빗으로 구성
다음 옵션 중 하나를 선택하여 Amazon S3 버킷에 대한 프라이빗 액세스를 구성합니다.
계정 수준 - 계정 수준 설정을 사용하여 계정의 모든 버킷에 대한 퍼블릭 액세스를 차단하려면 Amazon Simple Storage Service 사용 설명서의 계정에 대한 퍼블릭 액세스 차단 설정 구성을 참조하세요.
버킷 수준 - 특정 버킷에 대한 퍼블릭 액세스를 차단하려면 Amazon Simple Storage Service 사용 설명서의 Amazon S3buckets에 대한 yourAmazon.
버킷 ACL 또는 정책 - 버킷 액세스 제어 목록(ACL), 버킷 정책, 다중 리전 액세스 포인트(MRAP) 정책 또는 액세스 포인트 정책을 수정하여 버킷에 대한 퍼블릭 액세스를 제거하려면 Amazon Simple Storage Service 사용 설명서의 버킷 액세스 검토 및 변경을 참조하세요. 계정 수준 또는 버킷 수준에서 퍼블릭 액세스를 차단하면 해당 블록이 퍼블릭 액세스를 허용하는 정책보다 우선합니다.
Amazon S3 버킷에는 퍼블릭 읽기 액세스 권한이 있습니다.
퍼블릭 읽기 액세스 권한이 있는 Amazon S3 버킷을 사용하면 인터넷상의 모든 사용자가 버킷의 콘텐츠를 볼 수 있습니다. 공개적으로 액세스할 수 있는 웹 사이트 또는 공유 리소스에 필요할 수 있지만 버킷에 민감한 데이터가 포함된 경우 보안 위험이 발생할 수 있습니다. 퍼블릭 읽기 액세스는 무단 보기 및 다운로드로 이어질 수 있으며, 민감한 데이터가 해당 버킷에 저장되면 데이터 침해로 이어질 수 있습니다. 표준 보안 원칙에 따라는 Amazon S3 버킷에 대한 액세스를 필요한 사용자 및 시스템으로 제한하는 것을 AWS 권장합니다.
-
버킷 수준에서 퍼블릭 액세스 차단
Amazon S3는 버킷 정책 또는 ACLs에 관계없이 퍼블릭 액세스를 방지하기 위해 버킷 및 계정 수준 모두에서 구성할 수 있는 퍼블릭 액세스 차단 설정을 제공합니다. 자세한 내용은 Amazon Simple Storage Service 사용 설명서의 Amazon S3 스토리지에 대한 퍼블릭 액세스 차단을 참조하세요. 퍼블릭 액세스를 차단한 후 버킷 액세스 제어 구성을 검토하여 액세스 요구 사항에 맞는지 확인합니다. 그런 다음 Amazon S3 버킷 정책을 검토하여 버킷에 액세스할 수 있는 사용자를 명시적으로 정의합니다. 버킷 정책의 예는 Amazon Simple Storage Service 사용 설명서의 Amazon S3 버킷 정책 예제를 참조하세요.
-
대체 액세스 방법
퍼블릭 읽기 액세스가 필요한 경우 다음과 같은 보다 안전한 대안을 고려하세요.
-
CloudFront - CloudFront를 오리진 액세스 ID(OAI) 또는 오리진 액세스 제어(OAC)와 함께 사용하여 프라이빗 Amazon S3 버킷에서 읽기 액세스를 허용합니다. 이 대안은 CloudFront를 통해 콘텐츠에 공개적으로 액세스할 수 있도록 허용하면서 Amazon S3 버킷에 대한 직접 액세스를 제한합니다. 자세한 내용은 Amazon Amazon CloudFront 개발자 안내서의 Amazon S3 오리진에 대한 액세스 제한을 참조하세요.
-
미리 서명된 URLs- 특정 객체에 대한 임시 액세스를 위해 미리 서명된 URLs을 사용합니다. 자세한 내용은 AWSAmazon S3User 설명서의 미리 서명된 URLs.
-
Amazon S3 버킷에 쓰기 액세스 권한이 있음
퍼블릭 쓰기 액세스 권한이 있는 Amazon S3 버킷은 인터넷상의 모든 사용자가 버킷의 객체를 업로드, 수정 또는 삭제할 수 있도록 허용합니다. 이로 인해 누군가 악성 파일을 업로드하고, 기존 파일을 수정하고, 데이터를 삭제할 수 있는 가능성을 포함하여 상당한 보안 위험이 발생합니다. 퍼블릭 쓰기 액세스는 공격자가 악용할 수 있는 보안 취약성을 생성합니다. 표준 보안 원칙에 따라는 Amazon S3 버킷에 대한 쓰기 액세스를 필요한 사용자 및 시스템으로만 제한하는 것을 AWS 권장합니다.
-
계정 및 버킷 수준에서 퍼블릭 액세스 차단
Amazon S3는 버킷 정책 또는 ACLs에 관계없이 퍼블릭 액세스를 방지하기 위해 버킷 및 계정 수준 모두에서 구성할 수 있는 퍼블릭 액세스 차단 설정을 제공합니다. 자세한 내용은 Amazon Simple Storage Service 사용 설명서의 Amazon S3 스토리지에 대한 퍼블릭 액세스 차단을 참조하세요.
-
버킷 정책 수정
퍼블릭 쓰기 액세스를 제거하는 보다 세분화된 접근 방식을 보려면 버킷 정책을 검토하세요.
s3:PutObject
,s3:DeleteObject
또는를 찾을 수 있습니다s3:*
. 버킷 정책 관리에 대한 자세한 내용은 Amazon Simple Storage Service 사용 설명서의 Amazon S3에 대한 버킷 정책을 참조하세요. -
대체 액세스 방법 퍼블릭 읽기 액세스가 필요한 경우 다음과 같은 보다 안전한 대안을 고려하세요.
-
CloudFront - CloudFront를 오리진 액세스 ID(OAI) 또는 오리진 액세스 제어(OAC)와 함께 사용하여 프라이빗 Amazon S3 버킷에서 읽기 액세스를 허용합니다. 이 대안은 CloudFront를 통해 콘텐츠에 공개적으로 액세스할 수 있도록 허용하면서 Amazon S3 버킷에 대한 직접 액세스를 제한합니다. 자세한 내용은 Amazon CloudFront 개발자 안내서의 Amazon S3 오리진에 대한 액세스 제한을 참조하세요.
-
미리 서명된 URLs- 특정 객체에 대한 임시 액세스를 위해 미리 서명된 URLs을 사용합니다. 자세한 내용은 Amazon Simple Storage Service 사용 설명서의 미리 서명된 URLs.
-
Amazon S3 액세스 포인트에 퍼블릭 액세스 설정이 활성화되어 있음
Amazon S3 액세스 포인트는 Amazon S3 버킷의 공유 데이터 세트에 대한 사용자 지정 액세스를 제공합니다. 액세스 포인트에 대한 퍼블릭 액세스를 활성화하면 인터넷상의 모든 사용자가 데이터에 액세스할 수 있습니다. 표준 보안 원칙에 따라 Amazon S3 액세스 포인트에 대한 퍼블릭 액세스를 제한하는 것이 AWS 좋습니다.
-
퍼블릭 액세스 차단이 활성화된 새 액세스 포인트 생성
Amazon S3는 액세스 포인트가 생성된 후 액세스 포인트의 퍼블릭 액세스 설정 변경을 지원하지 않습니다. 액세스 포인트 생성에 대한 자세한 내용은 Amazon S3 사용 설명서의 범용 버킷의 액세스 포인트에 대한 퍼블릭 액세스 관리를 참조하세요. 액세스 포인트에 대한 퍼블릭 액세스 관리에 대한 자세한 내용은 Amazon S3 사용 설명서의 범용 버킷에 대한 액세스 포인트 생성을 참조하세요.
Amazon S3 버킷의 민감한 데이터 특성
다음은 Amazon S3 버킷의 민감한 데이터 특성과 제안된 수정 단계입니다.
Amazon S3 버킷의 민감한 데이터 특성
Macie가 Amazon S3 버킷에서 민감한 데이터를 식별하면 즉각적인 주의가 필요한 잠재적 보안 및 규정 준수 노출을 나타냅니다.
민감한 데이터에는 다음이 포함될 수 있습니다.
-
보안 인증 정보
-
개인 식별 정보
-
금융 정보
-
보호가 필요한 기밀 콘텐츠
구성 오류 또는 무단 액세스를 통해 민감한 데이터가 노출되면 규정 준수 위반, 데이터 침해, 자격 증명 도용 또는 재정적 손실이 발생할 수 있습니다. 보안 모범 사례에 따라는 적절한 데이터 분류와 Amazon S3 버킷의 민감한 데이터에 대한 지속적인 모니터링을 AWS 권장합니다.
민감한 데이터에 대한 제어 구현
노출 결과에서 리소스 열기를 선택합니다. 탐지된 민감한 데이터의 유형과 버킷 내 위치를 검토합니다. Macie 조사 결과를 해석하는 데 도움이 필요하면 Amazon Macie Macie 사용 설명서의 Macie 조사 결과 유형을 참조하세요.
검색된 민감한 데이터의 유형에 따라 적절한 보안 제어를 구현합니다.
-
버킷에 대한 액세스 제한 - 버킷 권한을 검토하여 최소 권한 원칙을 준수하는지 확인합니다. IAM 정책, 버킷 정책 및 ACLs을 사용하여 액세스를 제한합니다. 자세한 내용은 Amazon Simple Storage Service 사용 설명서의 Amazon S3용 Identity and Access Management를 참조하세요.
-
서버 측 암호화 활성화 - 추가 보호를 위해 KMS 키 키로 서버 측 암호화를 활성화합니다. 자세한 내용은 Amazon Simple Storage Service 사용 설명서의 AWS KMS 키를 사용한 서버 측 암호화(SSE-KMS) 사용을 참조하세요.
-
Use AWS Glue DataBrew – 데이터 준비 및 정리Glue DataBrew에 사용합니다. 자세한 내용은 AWS Glue DataBrew 개발자 안내서의 What is AWS Glue DataBrew를 참조하세요.