
S3
Amazon Simple Storage Service는 인터넷 스토리지 서비스.
-개발자나 IT 운영자가 웹 규모 컴퓨팅 작업을 수행하는 데 필요한 데이터 저장 공간을
제공하고 는 웹 사이트 호스팅, 온라인 백업, 데이터 아카이브, 기업 애플리케이션, Big Data 분석 등 다양한 용도로 사용된다.
S3 서비스 사용 예
-웹 사이트 호스팅
-멀티미디어 파일 저장 및 스트리밍
-애플리케이션 데이터 저장
-백업 및 복원
-아키이브
S3 서비스 장점
-높은 내구성, 가용성 및 안정성
-손쉬운 사용 및 관리
-보안성
-높은 확장성
Buckets
-데이터를 저장하는 가장 상위 레벨의 폴더 형태의 컨테이너
-S3에 저장되는 파일들을 ‘객체’ 라고 부르고 모든 객체는 ‘키’(디렉토리)로 식별된다.
prefix/delimiter/object-name
s3://my-bucket/my_folder/my_file.txt
버킷 사용 목적
-데이터 저장하는 컨테이너 역할
-객체에 대한 공용 또는 개인적인 접근 권한을 설정하기 위한 위치
-객체에 대한 특별한 이벤트 알림을 설정하기 위한 위치
-AWS 계정에서 버킷 및 객체 사용에 대한 비용 추적 및 모니터링 위한 위치
버킷 네이밍 컨벤션
-대문자 금지, 언더스코어 금지
-3자(최소)에서 63자(최대) 사이여야 한다.
-소문자, 숫자, 점(.) 및 하이픈(-)으로만 구성
-문자 또는 숫자로 시작하고 끝나야 한다.
-두 마침표를 나란히 붙여 사용하면 안 된다.
-IP 주소 형식(예: 192.168.5.4)을 사용하지 않는다.
버킷 폴리시
버킷폴리시
-IAM과 유사하며 JSON 형식의 문서.
-버킷의 모든 객체에 대한 액세스를 제어할 수 있다.
-특정 객체 또는 객체 그룹에 대한 액세스를 제어할 수 있다.
-액세스를 허용하는 IP 주소 또는 범위를 지정할 수 있다.
-액세스할 수 있는 리소스의 범위를 제한할 수 있다.
-암호화된 연결을 사용하도록 강제할 수 있다.
폴리시 예시
-Resource : 버킷 혹은 오브젝트
-Effect: Allow 혹은 Deny
-Principal : 대상 유저
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowUserToGetBucket",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::ACCOUNT-ID:user/USERNAME"
},
"Action": "s3:GetBucketLocation",
"Resource": "arn:aws:s3:::BUCKET-NAME"
}
]
}
-IAM 사용자 "USERNAME"이 GetBucketLocation 작업을 수행할 수 있도록 지정된 버킷 "BUCKET-NAME"에 대한 액세스를 허용한다.
arn:partition:service:region:account-id:resource-id
arn:partition:service:region:account-id:resource-type/resource-id
arn:partition:service:region:account-id:resource-type:resource-id
//예시
arn:aws:iam::123456789012:user/johndoe
arn:aws:s3:::my_corporate_bucket/
arn:aws:ec2:us-east-1:123456789012:vpc/vpc-0e9801d129EXAMPLE
ARN 형식
-arn: AWS 리소스 이름을 가리키는 고정 문자열
-aws: 리소스가 AWS에서 호스팅되는 것을 나타내는 고정 문자열
-service: AWS 서비스 이름을 나타내는 문자열
(예: s3, lambda, ec2 등)
-region: AWS 리전 이름을 나타내는 문자열
(예: us-east-1, ap-northeast-2 등)
-account-id: AWS 계정 ID를 나타내는 숫자
-resource-id: 해당 리소스의 고유 식별자
(예: S3 버킷 이름, Lambda 함수 이름등)
ACL
-Access Control List : 접근 권한을 가진 경우들을 명시