S3
https://gyazo.com/db4943b122c7be470e95597464aa483f
→ファイルが置かれたのをきっかけにLambdaする時などは重複を考慮する必要がある→冪等にする
hiroki.iconここは頑張ってくれよっ感じ
バージョニング管理は差分管理ではなく新、旧の両方が丸々保管される形
一覧
aws s3 ls s3://mybucket/object/ --profile hoge
バケットに他アカウントからのアクセスを許可する
code:json
{
"Version": "2012-10-17",
"Id": "Policy~~~",
"Statement": [
{
"Sid": "Stmt1585879672860",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::~~~~"
},
"Action": "s3:ListBucket",
"Resource": [
"arn:aws:s3:::hiroki.tennis"
],
"Condition": {
"StringLike": {
"s3:prefix": [
"access_test/*"
]
}
}
}
]
}
Principalでアカウントかiamなどを指定
Resouceでバケットを指定
Conditionでパスを指定
S3 Storage Lens
使用状況と傾向を可視化してくれる
https://gyazo.com/5590de01adbad6e8877c53a26b5313b7
fuseでs3をファイルストレージにマウントできる
Presinged URL
AWS署名がQuery Stringsパラメータに付与されたURLであると言える ファイルを一時的に不特定多数に公開する
→IAM以外の方法で制限をかける
有効期限を持たせられる
通常、S3上のファイルを操作するためには、必要なPermissionが付与されたIAM Userアカウントを持っているか、必要なPermissionが付与されたIAM RoleをAssumeRole出来る権限が必要です。
換言すると、有効なAWS Credentials(AccessKey/SecretAccessKeyのペア、もしくはTemporary Credentialsであれば、AccessKey/SecretAccessKey/SessionTokenのセット)を持っている必要があります。
Presigned URLとはこれが不要で、簡単に言うと、AWS Credentialsを持たないユーザに対してS3 Bucketに一時的にアクセスさせることを目的として発行する、一時的なURLといえます。
presignするコマンド
aws s3 presign s3://youtubedl-bucket/youtube/2021/5/7/RtbUv8J_fsY.mp4 --region ap-northeast-1
https://youtu.be/AulNJVZDObo
s3の強い一貫性