Amazon S3 버킷의 파일을 보호하려면 어떻게 해야 하나요?

5분 분량
0

Amazon Simple Storage Service(S3) 리소스에 대한 권한을 제한하고 이러한 리소스에 대한 액세스를 모니터링하고 싶습니다.

간략한 설명

파일과 Amazon S3 버킷의 보안을 유지하려면 다음 모범 사례를 따르십시오.

해결 방법

S3 리소스에 대한 액세스 제한

기본적으로 모든 S3 버킷은 비공개이며 명시적으로 액세스 권한이 부여된 사용자만 액세스할 수 있습니다.

다음을 수행하여 S3 버킷 또는 객체에 대한 액세스를 제한합니다.

  • 특정 버킷과 객체에 액세스할 수 있는 사용자를 지정하는 IAM 사용자 정책을 작성합니다. IAM 정책은 여러 사용자의 Amazon S3 권한을 프로그래밍 방식으로 관리할 수 있는 방법을 제공합니다. 사용자 정책 생성 및 테스트에 대한 자세한 내용은 AWS 정책 생성기IAM 정책 시뮬레이터를 참조하세요.
  • 특정 버킷과 객체에 대한 액세스를 정의하는 버킷 정책을 작성합니다. 버킷 정책을 사용하여 AWS 계정 전체에 액세스 권한을 부여하고, 공개 또는 익명 권한을 부여하고, 조건에 따라 액세스를 허용하거나 차단할 수 있습니다. 버킷 정책 생성 및 테스트에 대한 자세한 내용은 AWS 정책 생성기를 참조하세요.
    참고: 버킷 정책에서 거부 명령문을 사용하여 특정 IAM 사용자에 대한 액세스를 제한할 수 있습니다. IAM 정책에서 사용자에게 액세스 권한이 부여된 경우에도 액세스를 제한할 수 있습니다.
  • Amazon S3 퍼블릭 액세스 차단을 중앙 집중식으로 사용하여 퍼블릭 액세스를 제한합니다. 퍼블릭 액세스 차단 설정은 버킷 정책 및 객체 권한을 재정의합니다. 공개적으로 액세스하지 않으려는 모든 계정 및 버킷에 대해 공개 액세스 차단을 활성화해야 합니다.
  • 버킷과 객체에 액세스 제어 목록(ACL)을 설정합니다.
    참고: 프로그래밍 방식으로 권한을 관리해야 하는 경우 ACL 대신 IAM 정책이나 버킷 정책을 사용하세요. 하지만 버킷 정책이 최대 파일 크기가 20KB를 초과할 경우 ACL을 사용할 수 있습니다. 또는 ACL을 사용하여 Amazon S3 서버 액세스 로그 또는 Amazon CloudFront 로그에 대한 액세스 권한을 부여할 수 있습니다.

ACL을 사용하여 리소스를 보호할 때는 다음과 같은 모범 사례를 고려하세요.

  • 버킷 또는 객체에 대한 Amazon S3 작업을 허용하는 ACL 권한을 검토해야 합니다. ACL 권한 및 해당 권한이 허용하는 작업 목록은 어떤 권한을 부여할 수 있나요?를 참조하세요.
  • 버킷에 대한 읽기쓰기 액세스 권한을 부여받는 사람을 엄격하게 지정하세요.
  • Everyone 그룹에 읽기 권한을 부여하기 전에 사용 사례를 신중하게 고려하시면 하면 누구나 버킷이나 객체에 액세스할 수 있기 때문입니다.
  • Everyone 그룹에 쓰기 권한을 절대 허용하지 마십시오. 이 설정을 사용하면 누구나 버킷에 객체를 추가할 수 있으며 이에 대한 요금이 청구됩니다. 또한 이 설정을 통해 누구나 버킷의 객체를 삭제할 수 있습니다.
  • 모든 인증된 AWS 사용자 그룹에 쓰기 액세스를 절대 허용하지 마십시오. 이 그룹에는 계정의 IAM 사용자뿐만 아니라 활성 AWS 계정을 가진 모든 사람이 포함됩니다. 계정에서 IAM 사용자의 액세스를 제어하려면 대신 IAM 정책을 사용하세요. Amazon S3가 IAM 정책을 평가하는 방법에 대한 자세한 내용은 Amazon S3가 요청을 승인하는 방법을 참조하세요.

정책, 공개 액세스 차단 및 ACL을 사용하는 것 외에도 다음과 같은 방식으로 특정 작업에 대한 액세스를 제한할 수 있습니다.

  • MFA 삭제를 활성화하면 객체를 삭제하거나 버킷 버전 관리를 비활성화하기 전에 사용자가 다중 인증(MFA) 디바이스를 사용하여 인증해야 합니다.
  • MFA로 보호 API 액세스를 설정하려면 사용자가 특정 Amazon S3 API 작업을 호출하기 전에 AWS MFA 디바이스로 인증해야 합니다.
  • S3 객체를 다른 사용자와 임시로 공유하는 경우 미리 서명된 URL을 생성하여 객체에 대한 시간 제한 액세스 권한을 부여하세요. 자세한 내용은 미리 서명된 URL을 사용하여 객체 공유를 참조하세요.

S3 리소스 모니터링

다음과 같은 방법으로 로깅을 활성화하고 S3 리소스를 모니터링할 수 있습니다.

  • AWS CloudTrail 로그를 구성합니다. 기본적으로 CloudTrail 트랙은 버킷 수준의 작업만 추적합니다. 객체 수준 작업 (예: GetObject)을 추적하려면 Amazon S3 데이터 이벤트를 활성화하세요.
  • Amazon S3 서버 액세스 로깅을 활성화합니다. 이러한 로그를 검토하는 방법에 대한 자세한 내용은 Amazon S3 서버 액세스 로그 형식을 참조하세요.
  • AWS Config를 사용하여 버킷 ACL과 버킷 정책을 모니터링하여 퍼블릭 읽기 또는 쓰기 액세스를 허용하는 위반이 있는지 확인하세요. 자세한 내용은 s3-bucket-public-read-prohibiteds3-bucket-public-write-prohibited를 참조하세요.
  • AWS IAM Access Analyzer를 사용하면 다른 AWS 계정에서 S3 리소스에 대한 액세스 권한을 부여하는 버킷 또는 IAM 정책을 검토할 수 있습니다.
  • Amazon Macie를 사용하면 버킷에 저장된 민감한 데이터, 버킷에 대한 광범위한 액세스 및 계정의 암호화되지 않은 버킷을 자동으로 식별할 수 있습니다.
  • CloudTrail을 CloudWatch 또는 AWS Lambda와 같은 다른 서비스와 함께 사용하면 S3 리소스에서 특정 작업이 수행될 때 특정 프로세스를 호출할 수 있습니다. 자세한 내용은 CloudWatch 이벤트를 사용하여 Amazon S3 객체 수준 작업 로깅을 참조하세요.
  • 비즈니스 지원 플랜 또는 엔터프라이즈 지원 플랜을 사용하는 경우, AWS Trusted Advisor의 S3 버킷 권한 검사를 사용할 수 있습니다. 이 검사는 오픈 액세스 권한이 있는 버킷에 대해 알려줍니다.
    참고: 이 Trusted Advisor 검사는 버킷 ACL을 재정의하는 버킷 정책을 모니터링하지 않습니다.

암호화를 사용하여 데이터를 보호하세요

사용 사례에서 전송 중 암호화가 필요한 경우 Amazon S3는 Amazon S3로 전송되고 Amazon S3에서 전송 중 데이터를 암호화하는 HTTPS 프로토콜을 지원합니다. 모든 AWS SDK와 AWS 도구는 기본적으로 HTTPS를 사용합니다.
참고: 타사 도구를 사용하여 Amazon S3와 상호 작용하는 경우 개발자에게 문의하여 해당 도구가 HTTPS 프로토콜도 지원하는지 확인하세요.

사용 사례에서 저장 데이터에 대한 암호화가 필요한 경우 Amazon S3는 서버 측 암호화(SSE)를 제공합니다. SSE 옵션에는 SSE-S3, SSE-KMS 또는 SSE-C가 포함됩니다. 버킷에 객체를 쓸 때 SSE 파라미터를 지정할 수 있습니다. 또한 ](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html)SSE-S3 또는 SSE-KMS를 사용하여 버킷의 기본 암호화를 활성화[할 수 있습니다.

사용 사례에 클라이언트측 암호화가 필요한 경우 클라이언트측 암호화를 사용한 데이터 보호를 참조하세요.


관련 정보

Amazon S3의 ID 및 액세스 관리

아마존 S3의 데이터 보호

다른 AWS 계정의 사용자가 MFA를 사용하여 Amazon S3 버킷에 액세스하도록 하려면 어떻게 해야 합니까?

누가 내 Amazon S3 버킷과 객체에 액세스했는지 확인하려면 어떻게 해야 합니까?

AWS 공식
AWS 공식업데이트됨 2년 전