オブジェクトを安全に保つ

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 入門

Vamos praticar!

Python で始める AWS Boto 入門

Preparing Video For Download...