Kanji
・클라우드 엔지니어 / 프리랜서 ・1993년생 ・에히메현 출신 / 도쿄도 시부야구 거주 ・AWS 경력 5년 프로필 상세
목차
Amazon S3(Simple Storage Service)는 확장 가능하고 내구성이 뛰어난 객체 스토리지 서비스 입니다. 데이터의 저장, 검색, 관리가 용이하며 백업, 아카이빙, 데이터 레이크 등 다양한 용도로 사용됩니다.
<인용문> Amazon Simple Storage Service(Amazon S3)는 업계 최고의 확장성, 데이터 가용성, 보안 및 성능을 제공하는 객체 스토리지 서비스입니다. 모든 규모와 업종의 고객은 Amazon S3를 사용하여 데이터 레이크, 웹 사이트, 모바일 애플리케이션, 백업 및 복원, 아카이브, 엔터프라이즈 애플리케이션, IoT 장치, 빅 데이터 분석 등 다양한 사용 사례에 대해 원하는 양의 데이터를 저장하고 보호할 수 있습니다. Amazon S3는 특정 비즈니스, 조직 및 규정 준수 요구 사항을 충족하도록 데이터에 대한 액세스를 최적화, 구성 및 구성할 수 있도록 관리 기능을 제공합니다.
AWS에서 환경을 구축할 때 어떤 유형의 데이터가 생성되고 어떻게 저장되는지 고려하십시오.예를 들어 다음과 같은 유형의 데이터가 포함될 수 있습니다.
EC2만 사용하여 시스템을 구축하는 경우 먼저 EBS 볼륨에 데이터를 저장하는 것을 고려할 수 있습니다. 그러나 장기 데이터 저장 또는 고가용성을 위해 S3에 데이터를 저장하면 비용 효율성과 내결함성을 향상시킬 수 있습니다. OS에 저장된 데이터에 비해 접근 속도가 느리므로 자주 접근하는 데이터는 EBS에 저장하고, 아카이브나 백업 등 장기간 보관이 필요한 데이터는 S3에 저장하는 것이 좋다.
“로그 데이터”의 경우 다음 AWS 서비스는 S3 버킷을 출력 대상으로 사용할 수 있습니다.장기간 보존을 위해 CloudTrail 로그를 S3 버킷에 저장하면 나중에 감사하고 분석하기가 더 쉬워집니다.
중요성과 기밀성에 따라 데이터를 분류합니다. 예를 들어 다음과 같은 분류를 고려할 수 있습니다.여기에 분류된 데이터 유형에 따라 적절한 액세스 제어 및 암호화를 고려하세요.
필요한 경우 데이터 분류를 더욱 세분화합니다. 예를 들어, 일반 데이터에 포함되는 로그는 ‘감사 로그’, ‘비즈니스 로그’, ‘시스템 로그’로 더 분류될 수 있습니다.’공공 데이터’는 공개 범위에 따라 ’내부용’, ‘파트너용’, ‘공용’ 등으로 분류할 수도 있습니다.
데이터 분류에 따라 적절한 액세스 제어를 설정합니다.S3 버킷에 대한 액세스 제어는 다음과 같은 방법으로 구현할 수 있습니다.
각 제어 방법에 대해 다음 정책을 고려하십시오.
IAM 정책을 사용하여 S3 버킷에 대한 액세스 권한을 제어합니다.IAM 정책은 S3 버킷의 사용자 또는 역할에 액세스 권한을 부여합니다.
IAM 정책에서 버킷 이름으로 액세스를 제어하는 것은 버킷 수가 증가함에 따라 복잡해질 수 있으므로 제어를 위해 KMS 암호화와 결합하세요. “1. 데이터 분류”에서 분류된 데이터를 암호화하는 예는 다음과 같습니다.
암호화하면 AWS 관리형 “ReadOnlyAccess”와 같은 읽기 전용 정책을 부여하더라도 KMS 키에 액세스할 수 없는 사용자는 데이터 내용을 볼 수 없습니다. 또한 IAM 정책으로 KMS 키에 대한 액세스를 제어하면 특정 사용자나 역할만 데이터를 해독하도록 허용할 수 있습니다.
VPC 엔드포인트 정책을 사용하여 특정 S3 버킷에 대한 액세스를 제한합니다.IAM 정책과 마찬가지로 버킷 이름으로 제어하는 것은 복잡할 수 있으므로 VPC 엔드포인트 정책을 사용하여 특정 AWS 계정 또는 조직의 S3 버킷에 대한 액세스를 제한하는 것을 고려하십시오. 이는 무단 데이터 전송을 방지하고 보안을 강화하는 데 도움이 됩니다.
예를 들어 아래와 같이 VPC 엔드포인트 정책을 설정하면 특정 조직에만 S3 버킷에 대한 액세스를 허용할 수 있습니다. SSM 에이전트 또는 AWS 시스템 관리자 패치 관리자용 AWS 관리형 S3 버킷에 대한 액세스도 추가로 허용됩니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowOnlyOrgAccess", "Effect": "Allow", "Principal": "*", "Action": "s3:*", "Resource": "arn:aws:s3:::*", "Condition": { "StringEquals": { "aws:PrincipalOrgID": [ "o-xxxxxxx", ], "aws:ResourceOrgID": [ "o-xxxxxxx" ] } } }, { "Sid": "AllowAWSManagedBuckets", "Effect": "Allow", "Principal": "*", "Action": ["s3:GetObject"], "Resource": [ "arn:aws:s3:::al2023-repos-ap-northeast-1-de612dc2/*", "arn:aws:s3:::aws-windows-downloads-ap-northeast-1/*", "arn:aws:s3:::amazon-ssm-ap-northeast-1/*", "arn:aws:s3:::aws-ssm-ap-northeast-1/*", "arn:aws:s3:::patch-baseline-snapshot-ap-northeast-1/*", "arn:aws:s3:::aws-patch-manager-ap-northeast-1-552881074/*", "arn:aws:s3:::aws-patchmanager-macos-ap-northeast-1-552881074/*" ] } ] }
버킷 정책을 사용하여 S3 버킷에 대한 액세스를 제어합니다.기본적으로 허용 규칙을 정의하지 않는 한 버킷을 생성한 AWS 계정만 액세스할 수 있습니다. 허용 규칙을 정의하면 버킷을 생성한 계정 외부의 사용자, 역할 또는 AWS 서비스에 액세스 권한을 부여할 수 있습니다. 보안 위험을 줄이기 위해 필요한 최소한의 권한만 부여하세요.
Security Hub는 버킷 정책에 대한 제어를 정의하며 다음 규칙이 권장됩니다.
[S3.5] S3 범용 버킷에는 SSL 사용 요청이 필요합니다. [S3.6] S3 범용 버킷 정책은 다른 AWS 계정에 대한 액세스를 제한해야 합니다.
첫 번째 규칙은 S3 버킷에 액세스할 때 SSL을 사용하지 않는 요청을 거부하도록 버킷 정책을 설정할 것을 권장합니다. SSL을 사용하지 않는 요청을 거부하려면 아래와 같은 버킷 정책을 설정할 수 있습니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "RequireSSL", "Effect": "Deny", "Principal": "*", "Action": "s3:*", "Resource": "arn:aws:s3:::example-bucket/*", "Condition": { "Bool": { "aws:SecureTransport": "false" } } } ] }
버킷 ACL(액세스 제어 목록)을 사용하여 S3 버킷에 대한 액세스를 제어할 수 있습니다.하지만 아래 설명처럼 버킷 ACL은 권장되지 않으며, 액세스 제어를 위해 IAM 정책이나 버킷 정책을 사용하는 것이 가장 좋습니다.
<역따옴표> Amazon S3의 최신 사용 사례에서는 더 이상 ACL을 사용할 필요가 없습니다. 따라서 개별 객체에 대한 액세스를 제어해야 하는 특별한 상황이 아닌 이상 ACL을 비활성화하는 것이 좋습니다. ACL을 비활성화하면 객체를 업로드한 사람에 관계없이 정책을 사용하여 버킷의 모든 객체에 대한 액세스를 더 쉽게 제어할 수 있습니다.
객체 소유권 제어 및 버킷 ACL 비활성화 - Amazon Simple Storage Service
사용할 기회가 거의 없으므로 버킷 ACL에 대한 설명은 생략합니다.
KMS(키 관리 서비스)를 사용하여 S3 버킷의 데이터를 암호화합니다.KMS 키로 암호화된 데이터는 KMS 키 정책에 의해 제어됩니다. “1. IAM 정책”에서 언급한 것처럼 IAM 정책을 통해 KMS 키에 대한 접근을 제어함으로써 버킷 내 데이터에 대한 접근을 제한할 수 있다. 다음은 데이터 분류에 따른 KMS 키 설정을 요약한 것입니다.
SSE-S3(S3 표준 암호화)는 S3에서 제공하는 서버 측 암호화로 데이터를 자동으로 암호화합니다. 무료로 사용할 수 있지만 IAM 정책이나 KMS 키 정책으로 액세스를 제어할 수는 없습니다. 접근 제어가 필요하지 않은 경우 SSE-S3를 사용하여 쉽게 데이터를 암호화할 수 있습니다.