Amazon S3의 보안 모범 사례
Amazon S3는 자체 보안 정책을 개발하고 구현할 때 고려해야 할 여러 보안 기능을 제공합니다. 다음 모범 사례는 일반적인 지침이며 완벽한 보안 솔루션을 나타내지는 않습니다. 이러한 모범 사례는 환경에 적절하지 않거나 충분하지 않을 수 있으므로 지침이라기보다는 권장 사항으로만 사용해 주십시오.
Amazon SNS 보안 모범 사례
다음과 같은 Amazon S3 모범 사례를 통해 보안 사고를 예방할 수 있습니다.
- 액세스 제어 목록(ACL) 비활성화
-
S3 객체 소유권은 버킷에 업로드되는 객체의 소유권을 제어하고 ACL을 비활성화 또는 활성화하는 데 사용할 수 있는 Amazon S3 버킷 수준 설정입니다. 기본적으로 객체 소유권은 버킷 소유자 적용 설정으로 설정되며 모든 ACL이 비활성화되어 있습니다. ACL이 비활성화되면 버킷 소유자는 버킷의 모든 객체를 소유하고 액세스 관리 정책을 사용하여 데이터에 대한 액세스를 독점적으로 관리합니다.
Amazon S3의 현대적인 사용 사례 대부분은 더 이상 액세스 제어 목록(ACL) 사용을 요구하지 않습니다. 각 객체에 대해 액세스를 개별적으로 제어해야 하는 드문 상황을 제외하고는 ACL을 비활성화하는 것이 좋습니다. ACL을 비활성화하고 버킷 내 모든 객체의 소유권을 얻으려면 S3 객체 소유권에 버킷 소유자 적용 설정을 적용합니다. ACL을 사용 중지하면 다른 AWS 계정이 업로드한 객체로 버킷을 쉽게 유지 관리할 수 있습니다.
ACL이 비활성화되면 데이터에 대한 액세스 제어가 다음과 같은 정책을 기반으로 합니다.
-
AWS Identity and Access Management(IAM) 사용자 정책
-
S3 버킷 정책
-
가상 프라이빗 클라우드(VPC) 엔드포인트 정책
-
AWS Organizations 서비스 제어 정책(SCP)
-
AWS Organizations 리소스 제어 정책(RCP)
ACL을 비활성화하면 권한 관리와 감사가 단순화됩니다. 신규 버킷에는 기본적으로 ACL이 비활성화됩니다. 기존 버킷에 대해서도 ACL을 비활성화할 수 있습니다. 이미 객체가 있는 기존 버킷이 있는 경우 ACL을 비활성화하면 객체 및 버킷 ACL이 더 이상 액세스 평가 프로세스에 포함되지 않습니다. 대신 정책에 따라 액세스가 허용되거나 거부됩니다.
ACL을 사용하려면 다음을 수행해야 합니다.
-
버킷 정책을 검토하여 계정 외부에서 버킷에 대한 액세스 권한을 부여하려는 모든 방법을 포함하는지 확인합니다.
-
버킷 ACL을 기본값으로 재설정합니다(버킷 소유자에 대한 전체 제어 권한).
ACL을 비활성화하면 다음과 같은 동작이 발생합니다.
-
버킷은 ACL을 지정하지 않은
PUT
요청이나 버킷 소유자의 전체 제어 ACL이 있는PUT
요청만 수락합니다. 이러한 ACL에는bucket-owner-full-control
미리 준비된 ACL 또는 XML로 표현되는 이와 동등한 형식의 ACL이 포함됩니다. -
버킷 소유자 전체 제어 ACL을 지원하는 기존 애플리케이션은 영향을 받지 않습니다.
-
다른 ACL(예: 특정 AWS 계정에 대한 사용자 정의 권한 부여)이 포함된
PUT
요청은 실패하고 오류 코드AccessControlListNotSupported
와 함께400 (Bad Request)
오류를 반환합니다.
자세한 내용은 객체 소유권 제어 및 버킷에 대해 ACL 사용 중지 단원을 참조하십시오.
-
- Amazon S3 버킷이 올바른 정책을 사용하게 하고 이 버킷에 대한 퍼블릭 액세스 방지
-
인터넷의 누군가에게 S3 버킷을 읽거나 이 버킷에 쓰도록 명시적으로 요구하지 않을 경우 S3 버킷이 공개되지 않도록 하십시오. 퍼블릭 액세스를 차단하기 위해 다음과 같이 몇 가지 단계를 수행할 수 있습니다.
-
S3 퍼블릭 액세스 차단을 사용합니다. S3 퍼블릭 액세스 차단을 사용하면 중앙 집중식 제어를 쉽게 설정하여 Amazon S3 리소스에 대한 퍼블릭 액세스를 제한할 수 있습니다. 이러한 중앙 집중식 제어는 리소스 생성 방식과 관계없이 적용됩니다. 자세한 내용은 Amazon S3 스토리지에 대한 퍼블릭 액세스 차단 단원을 참조하십시오.
-
"Principal": "*"
(사실상 '누구나'를 의미함)과 같은 와일드카드 ID를 허용하는 Amazon S3 버킷 정책을 식별합니다. 와일드카드 작업"*"
(Amazon S3 버킷에서 작업을 수행하도록 사용자에게 효과적으로 허용)를 허용하는 정책을 찾습니다. -
마찬가지로 '모든 사용자'나 '인증된 모든 AWS 사용자'에게 읽기, 쓰기 또는 모든 액세스 권한을 제공하는 Amazon S3 버킷 액세스 제어 목록(ACL)을 찾습니다.
-
ListBuckets
API 작업을 사용하여 모든 Amazon S3 버킷을 스캔합니다. 그런 다음GetBucketAcl
,GetBucketWebsite
및GetBucketPolicy
를 사용하여 버킷에 규정을 준수하는 액세스 제어와 규정을 준수하는 구성이 있는지 확인합니다. -
AWS Trusted Advisor를 사용하여 Amazon S3 구현을 조사합니다.
-
s3-bucket-public-read-prohibited 및 s3-bucket-public-write-prohibited 관리형 AWS Config 규칙을 사용하여 지속적인 탐지 제어를 구현하는 것을 고려해 보십시오.
자세한 내용은 Amazon S3의 ID 및 액세스 관리 단원을 참조하십시오.
-
- 최소 권한 액세스 구현
-
권한을 부여할 때 누가 어떤 Amazon S3 리소스에 대해 어떤 권한을 갖는지 결정합니다. 해당 리소스에서 허용할 작업을 사용 설정합니다. 따라서 작업을 수행하는 데 필요한 권한만 부여하는 것을 권장합니다. 최소 권한 액세스를 구현하는 것이 오류 또는 악의적인 의도로 인해 발생할 수 있는 보안 위험과 영향을 최소화할 수 있는 근본적인 방법입니다.
다음과 같은 도구를 사용하여 최소 권한 액세스를 구현할 수 있습니다.
앞에 나온 메커니즘 중 하나 이상을 선택할 때 고려할 사항에 관한 지침은 Amazon S3의 ID 및 액세스 관리 단원을 참조하십시오.
- Amazon S3 액세스가 필요한 애플리케이션 및 AWS 서비스에 IAM 역할 사용
-
Amazon EC2 또는 다른 AWS 서비스에서 실행되는 애플리케이션이 Amazon S3 리소스에 액세스하기 위해서는 AWS API 요청에 유효한 AWS 자격 증명이 있어야 합니다. AWS 자격 증명을 애플리케이션이나 Amazon EC2 인스턴스에 직접 저장하지 않는 것을 권장합니다. 이러한 보안 인증은 자동으로 교체되지 않으며 손상된 경우 비즈니스에 큰 영향을 줄 수 있는 장기 보안 인증입니다.
그 대신 IAM 역할을 사용하여 Amazon S3에 액세스해야 하는 애플리케이션이나 서비스의 임시 자격 증명을 관리하십시오. 역할을 사용할 때 Amazon EC2 인스턴스나 AWS 서비스(예: AWS Lambda)에 장기 자격 증명(예: 사용자 이름과 암호 또는 액세스 키)를 배포할 필요가 없습니다. 애플리케이션에서 다른 AWS 리소스를 호출할 때 사용할 수 있는 임시 권한을 역할이 제공합니다.
자세한 내용은 IAM 사용 설명서에서 다음 주제를 참조하십시오.
- 유휴 데이터 암호화 고려
-
Amazon S3에서 유휴 데이터를 보호하는 다음과 같은 옵션이 있습니다.
-
서버 측 암호화 - 모든 Amazon S3 버킷에는 기본적으로 암호화가 구성되어 있으며 S3 버킷에 업로드되는 신규 객체는 모두 저장 시 자동으로 암호화됩니다. Amazon S3 관리형 키(SSE-S3)를 사용한 서버 측 암호화가 Amazon S3 내 모든 버킷의 기본 암호화 구성입니다. 다른 유형의 암호화를 사용하려면 S3
PUT
요청에 사용할 서버 측 암호화 유형을 지정하거나 대상 버킷에 기본 암호화 구성을 설정할 수 있습니다.또한 Amazon S3는 다음과 같은 서버 측 암호화 옵션을 제공합니다.
-
AWS Key Management Service(AWS KMS) 키(SSE-KMS)를 사용한 서버 측 암호화
-
AWS Key Management Service(AWS KMS) 키를 사용한 이중 계층 서버 측 암호화(DSSE-KMS)
-
고객 제공 키를 사용한 서버 측 암호화(SSE-C)
자세한 내용은 서버 측 암호화를 사용하여 데이터 보호 단원을 참조하십시오.
-
-
클라이언트측 암호화 – 클라이언트 측에서 데이터를 암호화하여 암호화된 데이터를 Amazon S3에 업로드합니다. 이 경우 사용자가 암호화 프로세스, 암호화 키 및 관련 도구를 관리합니다. 서버 측 암호화를 사용할 때처럼, 클라이언트 측 암호화를 사용하면 데이터 자체를 저장하는 것과는 다른 메커니즘으로 저장되는 키로 데이터를 암호화하여 위험을 줄일 수 있습니다.
Amazon S3에서는 여러 가지 클라이언트 측 암호화 옵션을 제공합니다. 자세한 내용은 클라이언트측 암호화를 사용하여 데이터 보호 단원을 참조하십시오.
-
- 전송 중인 데이터의 암호화 강제 시행
-
HTTPS(TLS)를 사용하여 잠재적 공격자가 네트워크 트래픽을 염탐하거나 중간자 또는 그와 유사한 공격을 사용하여 네트워크 트래픽을 조작하지 못하게 할 수 있습니다. Amazon S3 버킷 IAM 정책에 aws:SecureTransport 조건을 사용하여 HTTPS(TLS)를 통해 암호화된 연결만 허용하는 것을 권장합니다. 자세한 내용은 예시 S3 버킷 정책 HTTP 또는 HTTPS 요청 기반 액세스 관리를 참조하세요. HTTP 요청을 거부하는 것 외에도 콘텐츠에 HTTP 액세스 시도가 이루어지는 경우 알림을 보내도록
tlsDetails.tlsVersion NOT EXISTS
에 대해 Amazon CloudWatch 경보를 설정하는 것이 좋습니다. Amazon CloudWatch 경보를 구성하는 방법에 대한 자세한 내용은 AWS CloudTrail 사용 설명서의 Creating CloudWatch alarms for CloudTrail events: examples 및 CloudTrail record contents를 참조하세요.중요
AWS는 공개적으로 신뢰할 수 있는 인증서의 고정을 지원하지 않으므로 애플리케이션에서 Amazon S3 TLS 인증서를 고정하지 않는 것이 좋습니다. S3는 인증서를 자동으로 갱신하므로 인증서 만료 전에는 언제든지 인증서를 갱신할 수 있습니다. 인증서를 갱신하면 새로운 퍼블릭-프라이빗 키 페어가 생성됩니다. 최근에 새 공개 키로 갱신된 S3 인증서를 고정하면 애플리케이션에서 새 인증서를 사용할 때까지 S3에 연결할 수 없습니다.
또한 s3-bucket-ssl-requests-only 관리형 AWS Config 규칙을 사용하여 지속적인 탐지 제어를 구현하는 것을 고려해 보세요.
- S3 객체 잠금 고려
-
S3 객체 잠금을 사용하면 Write Once Read Many(WORM) 모델을 사용하여 객체를 저장할 수 있습니다. S3 객체 잠금은 부적절하거나 실수로 인한 데이터 삭제를 예방하는 데 도움이 됩니다. 예를 들어 S3 객체 잠금을 사용하여 AWS CloudTrail 로그를 보호할 수 있습니다.
자세한 내용은 Object Lock으로 객체 잠금 단원을 참조하십시오.
- S3 버전 관리 활성화
-
S3 버전 관리는 동일 버킷 내에 여러 개의 객체 변형을 보유하는 것을 의미합니다. 버전 관리를 사용하여 버킷에 저장된 모든 버전의 객체를 모두 보존, 검색 및 복원할 수 있습니다. 또한 의도치 않은 사용자 작업 및 애플리케이션 장애로부터 쉽게 복구할 수 있습니다.
또한 s3-bucket-versioning-enabled 관리형 AWS Config 규칙을 사용하여 지속적인 탐지 제어를 구현하는 것을 고려해 보세요.
자세한 내용은 S3 버전 관리로 여러 버전의 객체 유지 단원을 참조하십시오.
- S3 교차 리전 복제 사용 고려
-
Amazon S3는 기본적으로 여러 지역에 있는 다양한 가용 영역에 데이터를 저장하지만 규정 준수 요구 사항에 따라 훨씬 먼 거리에 데이터를 저장해야 할 수도 있습니다. 교차 리전 복제(CRR)를 사용하면 멀리 있는 AWS 리전 간에 데이터를 복제하여 이 요구 사항을 충족할 수 있습니다. CRR은 여러 AWS 리전에 있는 버킷 간에 객체를 비동기식으로 자동 복제할 수 있게 합니다. 자세한 내용은 리전 내 및 리전 간 객체 복제 단원을 참조하십시오.
참고
CRR을 사용할 경우 원본 및 대상 S3 버킷 둘 다 버전 관리가 활성화되어 있어야 합니다.
또한 s3-bucket-replication-enabled 관리형 AWS Config 규칙을 사용하여 지속적인 탐지 제어를 구현하는 것을 고려해 보십시오.
- Amazon S3 액세스에 대해 VPC 엔드포인트 사용 고려
-
Amazon S3용 가상 프라이빗 클라우드(VPC) 엔드포인트는 VPC 내의 논리적 엔터티로서, Amazon S3에만 연결을 허용합니다. VPC 엔드포인트는 트래픽이 개방형 인터넷을 통과하는 것을 방지하는 데 도움이 될 수 있습니다.
Amazon S3용 VPC 엔드포인트는 Amazon S3 데이터에 대한 액세스를 제어하는 다양한 방법을 제공합니다.
-
S3 버킷 정책을 사용하여 특정 VPC 엔드포인트를 통해 허용되는 요청, 사용자 또는 그룹을 제어할 수 있습니다.
-
S3 버킷 정책을 사용하여 S3 버킷에 대한 액세스를 갖게 되는 VPC 또는 VPC 종단점을 제어할 수 있습니다.
-
인터넷 게이트웨이가 없는 VPC를 사용하여 데이터 유출을 방지할 수 있습니다.
자세한 내용은 버킷 정책을 사용하여 VPC 엔드포인트에서 액세스 제어 단원을 참조하십시오.
-
- 관리형 AWS 보안 서비스를 사용하여 데이터 보안 모니터링
-
여러 관리형 AWS 보안 서비스를 통해 Amazon S3 데이터의 보안 및 규정 준수 위험을 식별, 평가 및 모니터링할 수 있습니다. 이러한 서비스는 이러한 위험으로부터 데이터를 보호하는 데도 도움이 될 수 있습니다. 이러한 서비스에는 단일 AWS 계정의 Amazon S3 리소스에서 수천 개의 계정에 걸친 조직을 위한 리소스로 확장하도록 설계된 자동화된 탐지, 모니터링 및 보호 기능이 포함됩니다.
자세한 내용은 관리형 AWS 보안 서비스를 사용하여 데이터 보안 모니터링 단원을 참조하십시오.
Amazon S3 모니터링 및 감사 모범 사례
다음과 같은 Amazon S3 모범 사례는 잠재적 보안 약점과 사고를 탐지하는 데 도움이 됩니다.
- 모든 Amazon S3 버킷 식별 및 감사
-
IT 자산 식별은 거버넌스와 보안의 중요한 측면입니다. 모든 Amazon S3 리소스를 파악하여 보안 태세를 평가하고 약점이 될 수 있는 부분에 대해 조치를 취해야 합니다. 리소스를 감사하려면 다음을 수행하는 것이 좋습니다.
-
Tag Editor를 사용하여 보안이나 감사에 민감한 리소스를 식별하고 태그를 지정한 후, 이 리소스를 검색해야 할 때 태그를 이용하십시오. 자세한 내용은 AWS 리소스 태그 지정 사용 설명서의 태그를 지정할 리소스 검색을 참조하십시오.
-
S3 인벤토리를 사용하여 비즈니스, 규정 준수 및 규제 요건에 대한 객체의 복제 및 암호화 상태를 감사하고 보고합니다. 자세한 내용은 S3 Inventory를 사용한 데이터 카탈로그화 및 분석 단원을 참조하십시오.
-
Amazon S3 리소스에 대한 Resource Groups을 생성합니다. Resource Groups에 대한 자세한 내용은 AWS Resource Groups 사용 설명서의 Resource Groups란 무엇인가요?를 참조하십시오.
-
- AWS 모니터링 도구를 사용하여 모니터링 구현
-
모니터링은 Amazon S3 및 AWS 솔루션의 안정성, 보안, 가용성 및 성능을 유지하는 데 중요한 부분입니다. AWS에서는 Amazon S3 및 다른 AWS 서비스를 모니터링할 수 있는 여러 가지 도구와 서비스를 제공합니다. 예를 들어 Amazon S3에 대한 Amazon CloudWatch 지표(특히
PutRequests
,GetRequests
,4xxErrors
및DeleteRequests
지표)를 모니터링할 수 있습니다. 자세한 내용은 Amazon CloudWatch를 사용한 지표 모니터링 및 Amazon S3의 로깅 및 모니터링 단원을 참조하세요.두 번째 예는 예제: Amazon S3 버킷 작업을 참조하십시오. 이 예에서는 버킷 정책, 버킷 수명 주기 또는 버킷 복제 구성을
PUT
또는DELETE
하거나 버킷 ACL을PUT
하기 위해 Amazon S3 API가 호출될 때 트리거되는 CloudWatch 경보를 생성하는 방법을 설명합니다. - Amazon S3 서버 액세스 로깅 사용
-
서버 액세스 로깅은 버킷에 대해 이루어진 요청의 상세 레코드를 제공합니다. 서버 액세스 로그는 보안 및 액세스 감사에 도움이 되고, 고객 기반을 파악하고 Amazon S3 청구서를 이해하는 데 유용합니다. 서버 액세스 로깅 사용 설정에 대한 자세한 내용은 서버 액세스 로깅을 사용한 요청 로깅 섹션을 참조하십시오.
또한 s3-bucket-logging-enabled AWS Config 관리형 규칙을 사용하여 지속적인 탐지 제어를 구현하는 것을 고려해 보십시오.
- AWS CloudTrail 사용
-
AWS CloudTrail은 Amazon S3에서 사용자, 역할 또는 AWS 서비스가 수행한 작업에 대한 레코드를 제공합니다. CloudTrail에서 수집한 정보를 사용하여 다음을 확인할 수 있습니다.
-
Amazon S3에 대한 요청
-
요청을 보낸 IP 주소
-
요청한 사람
-
요청을 한 시간
-
요청에 대한 추가 세부 정보
예를 들어 데이터 액세스에 영향을 주는
PUT
작업(특히PutBucketAcl
,PutObjectAcl
,PutBucketPolicy
및PutBucketWebsite
)의 CloudTrail 항목을 식별할 수 있습니다.AWS 계정을 설정하면 CloudTrail이 기본적으로 사용됩니다. CloudTrail 콘솔에서 최근 이벤트를 볼 수 있습니다. Amazon S3 버킷에 대한 활동 및 이벤트에 대한 지속적인 레코드를 생성하려면 CloudTrail 콘솔에서 추적을 생성하면 됩니다. 자세한 내용을 알아보려면 AWS CloudTrail 사용 설명서의 데이터 이벤트 로깅을 참조하십시오.
추적을 생성할 때 데이터 이벤트를 로그로 기록하도록 CloudTrail을 구성할 수 있습니다. 데이터 이벤트는 리소스에 대해 또는 리소스 내에서 수행되는 리소스 작업의 레코드입니다. Amazon S3에서 데이터 이벤트는 개별 버킷에 대한 객체 수준 API 활동을 기록합니다. CloudTrail은
GetObject
,DeleteObject
및PutObject
와 같은 Amazon S3 객체 수준 API 작업의 하위 집합을 지원합니다. CloudTrail이 Amazon S3에서 작동하는 방식에 대한 자세한 내용은 AWS CloudTrail을 사용하여 Amazon S3 API 호출 로깅 단원을 참조하십시오. Amazon S3 콘솔에서 S3 버킷을 S3 버킷 및 객체에 대한 CloudTrail 이벤트 로깅 사용 설정에 구성할 수도 있습니다.AWS Config는 하나 이상의 CloudTrail 추적이 S3 버킷에 대한 데이터 이벤트를 로그로 기록하고 있는지 확인하는 데 사용할 수 있는 관리형 규칙(
cloudtrail-s3-dataevents-enabled
)을 제공합니다. 자세한 내용은 AWS Config 개발자 안내서의 cloudtrail-s3-dataevents-enabled 섹션을 참조하십시오. -
- 사용 설정AWS Config
-
이 주제에 나오는 여러 가지 모범 사례는 AWS Config 규칙 생성을 제안합니다. AWS Config를 사용하면 AWS 리소스의 구성을 평가, 감사 및 측정하는 데 도움이 됩니다. AWS Config는 리소스 구성을 모니터링하여 원하는 보안 구성을 기준으로 기록된 구성을 평가할 수 있게 해줍니다. AWS Config을 사용하여 다음 작업을 할 수 있습니다.
-
구성 변경 사항 및 AWS 리소스 간의 관계 검토
-
자세한 리소스 구성 기록 조사
-
내부 지침에 지정된 구성을 기준으로 전반적인 준수 여부를 확인합니다.
AWS Config를 사용하면 규정 준수 감사, 보안 분석, 변경 관리 및 운영 문제 해결 작업을 간소화할 수 있습니다. 자세한 내용은 AWS Config 개발자 안내서의 콘솔을 통해 AWS Config 설정을 참조하십시오. 기록할 리소스 유형을 지정할 때 Amazon S3 리소스를 포함해야 합니다.
중요
AWS Config 관리형 규칙은 Amazon S3 리소스를 평가할 때 범용 버킷만 지원합니다. AWS Config는 디렉터리 버킷의 구성 변경을 기록하지 않습니다. 자세한 내용은 AWS Config 개발자 안내서의 AWS Config 관리형 규칙 및 AWS Config 관리형 규칙 목록을 참조하세요.
AWS Config를 사용하는 방법의 예시를 보려면 AWS 보안 블로그의 AWS Config를 사용하여 퍼블릭 액세스를 허용하는 Amazon S3 버킷을 모니터링하고 이에 응답하는 방법
을 참조하십시오. -
- S3 스토리지 렌즈 사용
-
S3 스토리지 렌즈는 조직 전반에서 객체 스토리지 사용 및 활동에 대한 가시성을 확보하는 데 사용할 수 있는 클라우드 스토리지 분석 기능입니다. S3 스토리지 렌즈는 또한 지표를 분석해 스토리지 비용을 최적화하고 데이터 보호에 대한 모범 사례를 적용하는 데 사용할 수 있는 상황별 권장 사항을 제공합니다.
S3 Storage Lens의 지표를 사용하여 조직 전반의 스토리지 용량 또는 가장 빠르게 증가하는 버킷과 접두사 등의 요약 인사이트를 생성할 수 있습니다. 또한 S3 스토리지 렌즈 지표를 사용하여 비용 최적화 기회를 식별하고, 데이터 보호 및 액세스 관리 모범 사례를 구현하고, 애플리케이션 워크로드의 성능을 개선할 수 있습니다.
예를 들어 S3 수명 주기 규칙이 없는 버킷을 식별하여 7일이 넘게 경과한 미완료 멀티파트 업로드를 중단할 수 있습니다. 또한 S3 복제 또는 S3 버전 관리 사용과 같은 데이터 보호 모범 사례를 따르지 않는 버킷을 식별할 수 있습니다. 자세한 내용은 Amazon S3 스토리지 렌즈 이해를 참조하십시오.
- AWS 보안 공지 모니터링
-
AWS 계정의 Trusted Advisor에 게시되는 보안 권고 사항을 정기적으로 확인하는 것이 좋습니다. 특히 '공개 액세스 권한'이 있는 Amazon S3 버킷에 대한 경고를 찾아보십시오. 이 작업은 describe-trusted-advisor-checks를 사용하여 프로그래밍 방식으로 수행할 수 있습니다.
뿐만 아니라, 각 AWS 계정에 등록된 기본 이메일 주소를 적극적으로 모니터링하십시오. 사용자에게 영향을 줄 수 있는 보안 문제가 생기면 AWS에서 이 이메일 주소를 사용하여 연락 드립니다.
널리 영향을 미치는 AWS 운영 문제는 AWS Health Dashboard - 서비스 상태
에 게시됩니다. AWS Health Dashboard를 통해 개별 계정에도 운영 문제가 게시됩니다. 자세한 내용은 AWS Health 설명서를 참조하십시오.
관리형 AWS 보안 서비스를 사용하여 데이터 보안 모니터링
여러 관리형 AWS 보안 서비스를 통해 Amazon S3 데이터의 보안 및 규정 준수 위험을 식별, 평가 및 모니터링할 수 있습니다. 이러한 서비스는 해당 위험으로부터 데이터를 보호하는 데도 도움이 될 수 있습니다. 이러한 서비스에는 단일 AWS 계정의 Amazon S3 리소스에서 수천 개의 AWS 계정에 걸친 조직을 위한 리소스로 확장하도록 설계된 자동화된 탐지, 모니터링 및 보호 기능이 포함됩니다.
AWS 탐지 및 대응 서비스를 사용하면 잠재적인 보안 구성 오류, 위협 또는 예상치 못한 동작을 식별하여 사용자 환경에서 잠재적인 무단 활동 또는 악의적인 활동에 신속하게 대응할 수 있습니다. AWS 데이터 보호 서비스를 사용하면 데이터, 계정 및 워크로드를 모니터링하고 무단 액세스로부터 보호할 수 있습니다. 또한 Amazon S3 데이터 자산에서 개인 식별 정보(PII)와 같은 민감한 데이터를 검색하는 데 도움이 될 수 있습니다.
관리형 AWS 보안 서비스는 데이터 보안 및 규정 준수 위험을 식별하고 평가하는 데 도움이 되도록 조사 결과를 생성하여 Amazon S3 데이터와 관련된 잠재적 보안 이벤트 또는 문제를 알려줍니다. 조사 결과는 인시던트 대응 워크플로 및 정책에 따라 이러한 위험을 조사 및 평가하고 조치를 취하는 데 사용할 수 있는 관련 세부 정보를 제공합니다. 각 서비스를 사용하여 조사 결과 데이터에 직접 액세스할 수 있습니다. 또한 보안 인시던트 및 이벤트 관리 시스템(SIEM)과 같은 다른 애플리케이션, 서비스 및 시스템으로 데이터를 보낼 수도 있습니다.
Amazon S3 데이터의 보안을 모니터링하려면 이러한 관리형 AWS 보안 서비스를 사용해 보십시오.
- Amazon GuardDuty
-
Amazon GuardDuty는 AWS 계정 및 워크로드에 악의적인 활동이 있는지 지속적으로 모니터링하고 가시성 및 해결을 위한 상세한 보안 조사 결과를 제공하는 위협 탐지 서비스입니다.
GuardDuty의 S3 보호 기능을 사용하면 GuardDuty를 구성하여 Amazon S3 리소스에 대한 AWS CloudTrail 관리 및 데이터 이벤트를 분석할 수 있습니다. 그러면 GuardDuty는 해당 이벤트를 모니터링하여 악의적이고 의심스러운 활동이 있는지 확인합니다. GuardDuty는 분석 결과를 알리고 잠재적인 보안 위험을 식별하기 위해 위협 인텔리전스 피드와 기계 학습을 사용합니다.
GuardDuty는 Amazon S3 리소스에 대한 다양한 종류의 활동을 모니터링할 수 있습니다. 예를 들어, Amazon S3용 CloudTrail 관리 이벤트에는
ListBuckets
,DeleteBucket
및PutBucketReplication
과 같은 버킷 수준 작업이 포함됩니다. Amazon S3용 CloudTrail 데이터 이벤트에는GetObject
,ListObjects
및PutObject
와 같은 객체 수준 작업이 포함됩니다. GuardDuty가 비정상적이거나 잠재적으로 악의적인 활동을 탐지하면 조사 결과를 생성하여 사용자에게 알립니다.자세한 내용은 Amazon GuardDuty 사용 설명서의 Amazon GuardDuty에서 Amazon S3 보호를 참조하십시오.
- Amazon Detective
-
Amazon Detective는 조사 프로세스를 간소화하고 더 빠르고 효과적인 보안 조사를 수행할 수 있도록 도와줍니다. Detective는 가능한 보안 문제의 특성과 범위를 분석하고 평가하는 데 도움이 되는 사전 빌드된 데이터 집계, 요약 및 컨텍스트를 제공합니다.
Detective는 AWS CloudTrail의 API 호출 및 AWS 리소스의 Amazon VPC 흐름 로그와 같은 시간 기반 이벤트를 자동으로 추출합니다. 또한 Amazon GuardDuty에서 생성한 결과를 수집합니다. 그런 다음 Detective는 기계 학습, 통계 분석 및 그래프 이론을 사용하여 효과적인 보안 조사를 보다 신속하게 수행하는 데 도움이 되는 시각화를 생성합니다.
이러한 시각화는 리소스 동작과 시간 경과에 따른 리소스 동작 간의 상호 작용에 대한 통합된 대화형 보기를 제공합니다. 이 동작 그래프를 탐색하여 실패한 로그인 시도 또는 의심스러운 API 호출과 같은 잠재적으로 악의적인 작업을 검사할 수 있습니다. 또한 이러한 작업이 S3 버킷이나 객체와 같은 리소스에 미치는 영향을 확인할 수 있습니다.
자세한 내용은 Amazon Detective 관리 가이드를 참조하십시오.
- IAM Access Analyzer
-
AWS Identity and Access Management Access Analyzer(IAM Access Analyzer)를 사용하면 외부 엔터티와 공유되는 조직의 리소스 및 계정을 식별할 수 있습니다. 또한 IAM Access Analyzer를 사용하여 정책 문법 및 모범 사례에 따라 IAM 정책을 검증하고 AWS CloudTrail 로그의 액세스 활동을 기반으로 IAM 정책을 생성할 수 있습니다.
IAM Access Analyzer는 논리 기반 추론을 사용하여 사용자 AWS 환경의 리소스 정책(예: 버킷 정책)을 분석합니다. IAM Access Analyzer for S3를 사용하면 인터넷의 모든 사용자 또는 조직 외부의 계정을 포함한 다른 AWS 계정이 액세스할 수 있게 S3 버킷이 구성되면 알림을 받게 됩니다. 예를 들어 IAM Access Analyzer for S3는 버킷에 버킷 액세스 제어 목록(ACL), 버킷 정책, 다중 리전 액세스 포인트 정책 또는 액세스 포인트 정책을 통해 제공된 읽기 또는 쓰기 권한이 있음을 보고할 수 있습니다. 각 퍼블릭 버킷 또는 공유 버킷에 대해 퍼블릭 액세스 또는 공유 액세스의 수준과 소스를 알려주는 결과가 수신됩니다. 이러한 내용을 바탕으로 즉각적이고 정확한 시정 조치를 취하여 버킷 액세스를 원하는 대로 복원할 수 있습니다.
자세한 내용은 IAM Access Analyzer for S3를 사용하여 버킷 액세스 검토 단원을 참조하십시오.
- Amazon Macie
-
Amazon Macie는 기계 학습 및 패턴 일치를 사용하여 민감한 데이터를 검색하는 보안 서비스입니다. Macie는 데이터 보안 위험에 대한 가시성을 제공하고 이러한 위험에 대한 자동화된 보호를 지원합니다. Macie를 사용하면 Amazon S3 데이터 자산에서 민감한 데이터의 검색 및 보고를 자동화하여 조직이 S3에 저장하는 데이터를 더 잘 이해할 수 있습니다.
Macie를 사용하여 민감한 데이터를 감지하려면 규모가 크고 점점 더 늘어나는 많은 국가 및 리전에 대한 민감한 데이터 유형 목록을 탐지하도록 설계된 기본 제공 기준 및 기법을 사용할 수 있습니다. 이러한 민감한 데이터 유형에는 여러 유형의 개인 식별 정보(PII), 재무 데이터 및 보안 인증 데이터가 포함됩니다. 직접 정의하는 사용자 지정 기준을 사용할 수도 있습니다. 즉, 일치시킬 텍스트 패턴을 정의하는 정규 표현식 및 원하는 경우 결과를 세분화하는 문자 시퀀시 및 근접성 규칙을 사용할 수 있습니다.
Macie가 S3 객체에서 민감한 데이터를 탐지하면 Macie는 보안 조사 결과를 생성하여 사용자에게 알립니다. 이 조사 결과는 영향을 받는 객체에 대한 정보, Macie가 발견한 민감한 데이터의 유형 및 발생 횟수, 영향을 받는 S3 버킷 및 객체를 조사하는 데 도움이 되는 추가 세부 정보를 제공합니다. 자세한 내용은 Amazon Macie 사용 설명서를 참조하십시오.
- AWS Security Hub
-
AWS Security Hub는 보안 모범 사례 검사를 수행하고, 여러 소스의 경고 및 조사 결과를 단일 형식으로 집계하고, 자동화된 문제 해결을 지원하는 보안 태세 관리 서비스입니다.
Security Hub는 통합 AWS Partner Network 보안 솔루션과 Amazon Detective, Amazon GuardDuty, IAM Access Analyzer 및 Amazon Macie를 비롯한 AWS 서비스에서 보안 조사 결과 데이터를 수집하고 제공합니다. 또한 AWS 모범 사례 및 지원되는 업계 표준을 기반으로 자동화된 보안 검사를 지속적으로 실행하여 자체 결과를 생성합니다.
그런 다음 Security Hub는 가장 중요한 조사 결과의 우선순위를 지정하고 처리할 수 있도록 공급자 간 결과를 상호 연관시키고 통합합니다. 또한 특정 조사 결과 클래스에 대한 응답 또는 수정 조치를 호출하는 데 사용할 수 있는 사용자 지정 작업에 대한 지원도 제공합니다.
Security Hub를 사용하면 Amazon S3 리소스의 보안 및 규정 준수 상태를 평가할 수 있습니다. 이는 개별 AWS 리전 및 여러 리전에 걸친 조직의 보안 태세에 대한 광범위한 분석의 일환으로 수행할 수 있습니다. 여기에는 보안 추세를 분석하고 우선순위가 가장 높은 보안 문제를 식별하는 것이 포함됩니다. 또한 여러 AWS 리전의 조사 결과를 집계하고 집계된 결과 데이터를 단일 리전에서 모니터링 및 처리할 수 있습니다.
자세한 내용은 AWS Security Hub 사용 설명서의 Amazon Simple Storage Service 제어를 참조하십시오.