객체 보안 유지

Python으로 시작하는 AWS Boto

Maksim Pecherskiy

Data engineer

권한이 중요한 이유

df = pd.read_csv('https://gid-staging.potholes.csv')

권한 개요

Python으로 시작하는 AWS Boto

권한이 중요한 이유

권한 허용됨!

# Generate the boto3 client for interacting with S3
s3 = boto3.client('s3', region_name='us-east-1', 
                         aws_access_key_id=AWS_KEY_ID, 
                         aws_secret_access_key=AWS_SECRET)

# Use client to download a file s3.download_file( Filename='potholes.csv', Bucket='gid-requests', Key='potholes.csv')
Python으로 시작하는 AWS Boto

AWS 권한 시스템

IAM

버킷 정책

ACL

사전 서명 URL

Python으로 시작하는 AWS Boto

AWS 권한 시스템

IAM

버킷 정책

ACL

사전 서명 URL

Python으로 시작하는 AWS Boto

ACL

ACL

Python으로 시작하는 AWS Boto

ACL

파일 업로드

s3.upload_file(
  Filename='potholes.csv', Bucket='gid-requests', Key='potholes.csv')

ACL을 'public-read'로 설정

s3.put_object_acl(
  Bucket='gid-requests', Key='potholes.csv', ACL='public-read')
Python으로 시작하는 AWS Boto

업로드 시 ACL 설정

'public-read' ACL로 업로드

s3.upload_file(
  Bucket='gid-requests', 
  Filename='potholes.csv', 
  Key='potholes.csv', 
  ExtraArgs={'ACL':'public-read'})
Python으로 시작하는 AWS Boto

공개 객체 접근

S3 객체 URL 템플릿

https://{bucket}.{key}

Key='2019/potholes.csv'의 URL

https://gid-requests.2019/potholes.csv
Python으로 시작하는 AWS Boto

공개 객체 URL 생성

객체 URL 문자열 생성

url = "https://{}.{}".format(
  "gid-requests", 
  "2019/potholes.csv")

'https://gid-requests.2019/potholes.csv'

# URL을 Pandas로 읽기
df = pd.read_csv(url)
Python으로 시작하는 AWS Boto

접근 결정 방식

접근 계층 구조

Python으로 시작하는 AWS Boto

접근 결정 방식

접근 계층 구조

Python으로 시작하는 AWS Boto

복습

IAM

버킷 정책

ACL

사전 서명 URL

Python으로 시작하는 AWS Boto

복습

ACL을 'public-read'로 설정

s3.put_object_acl(
  Bucket='gid-requests', Key='potholes.csv', ACL='public-read')

ACL을 'private'로 설정

s3.put_object_acl(
  Bucket='gid-requests', Key='potholes.csv', ACL='private')
Python으로 시작하는 AWS Boto

복습

'public-read' ACL로 업로드

s3.upload_file(
  Bucket='gid-requests', 
  Filename='potholes.csv', 
  Key='potholes2.csv', 
  ExtraArgs={'ACL':'public-read'})
Python으로 시작하는 AWS Boto

복습

객체 URL 문자열 생성

url = "https://{}.{}".format(
  "gid-requests", 
  "2019/potholes.csv")

'https://gid-requests.2019/potholes.csv'

# URL을 Pandas로 읽기
df = pd.read_csv(url)
Python으로 시작하는 AWS Boto

연습해 봅시다!

Python으로 시작하는 AWS Boto

Preparing Video For Download...