💬 자세한 내용은 아래 게시물을 확인해주세요!
▶️ S3 자세히 살펴보기
✔️ Python으로 S3 버킷 만들기
import boto3 s3 = boto3.client( 's3', aws_access_key_id='<AWS_ACCESS_KEY_ID>', # 액세스 키 aws_secret_access_key='<AWS_ACCESS_KEY_ID>') # 비밀 엑세스 키 s3.create_bucket( Bucket='my-bucket-name-fsoftwareengineer' )
📌 새로운 객체 생성, 객체 삭제/복원/복제 등 특정 이벤트 발생 시 알림을 받을 수 있다.
✔️ Schedule Lambda 기능
💬 AWS 공식 문서에 설명이 매우 잘되어있다!
▶️ Amazon S3 버킷 정책
📌 기본적으로 Amazon S3 버킷 설정은 버킷 및 해당 객체에 대한 퍼블릭 액세스를 차단하지만,
Amazon S3 버킷 및 객체에 대한 액세스를 조정할 수 있다.
▶️ IAM 정책
▶️ 액세스 제어 목록 (ACL)
▶️ 버킷 정책
✔️ S3 버킷 정책 예제
익명 사용자에게 읽기 전용 권한을 부여하는 예제
{ "Version": "2012-10-17", "Statement": [ { "Effect": " Allow", # Allow/Deny "Action": [ # 각 리소스에서 허용/거부 되는 작업 "s3:GetObject", "s3:GetObjectVersion" ], "Resource": "arn:aws:s3:::notes-bucket/*", # 권한을 허용/거부할 리소스 "Principal": "*" # 정책이 적용되는 사용자 } ] }
▶️ 하위 수준 명령(s3api)
> copy-object
> create-multipart-upload
> complete-multipart-upload
> abort-multipart-upload
▶️ 상위 수준 명령(s3)
> cp
> sync
→ 상위 수준 명령과 하위 수준 명령을 서로 바꾸어 사용할 수 있다
- SDK에 대한 Amazon S3 설정 구성
- 종속성 정의
- S3 클라이언트를 생성하여 서비스 요청 수행
- 작업 수행
AWS 서비스와 APi가 상호 작용하기 위해서는 AWS SDK 및 AWS CLI가 요청된 작업을 수행하기 위한 정보가 필요하다.
SDK는 서비스의 종속성을 구성해야한다.
각 AWS 서비스에는 서비스 API는 각 작업에 대한 메서드와 서비스 인터페이스가 있다.
✔️ S3 클라이언트 구성 및 생성 예제 (python)
import boto3 # 세션 객체가 프로파일의 보안 인증 정보에서 생성 session=boto3.session.Session(profile_name='staging') current_region = session.region_name # S3 리소스를 생성하고 버킷의 이름을 설정 s3resource = boto3.resource('s3') bucket = resource.Bucket('notes--bucket') # 프로파일에 지정된 대로 버킷을 생성 bucket.create(CreateBucketConfiguration={ 'LocationConstraint': current_region } )
이 예제에서는 특정 프로파일 구성 정보가 클라이언트 생성 시 파라미터로 전달된다.
세션은 구성 상태를 저장하는 객체로, 이 정보를 가져와 클라이언트를 생성 할 수 있다.