ファイルを置くだけ用バケット
2023/11 の作業
ファイルのバックアップ様に置くだけのバケット(パブリックアクセスできない)を作成。
ファイルは「aws cli」でファイルを置く予定。
S3のバケット作成を参考に、
・バケットの作成
・ポリシーの作成
・ポリシーを持ったユーザを作成
を行う。
バケットの作成
前回と同じ様に作成するけど、「このバケットのブロックパブリックアクセス設定-パブリックアクセスを全てブロック」をチェックして作成する。

そうすると、以下の様に、アクセスが「非公開のバケットとオブジェクト」で作成される。

ポリシーの作成
IAMでファイルを置くだけ用のポリシーを作成する。
cli から削除しない予定なので、DeleteObjectはいらない。
ディレクトリも置く予定なので、ListBuketとPutObjectだけにする。(これだけで上書きできる)
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Statement1",
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:ListBucket",
],
"Resource": [
"arn:aws:s3:::work-bucket2",
"arn:aws:s3:::work-bucket2/*"
]
}
]
}
ポリシーを持ったユーザを作成
・このユーザは、aws マネジメントコンソールでアクセスしないので、「AWS マネジメントコンソールへのユーザーアクセスを提供する」はチェックしない。
・「ポリシーを直接アタッチする」で上で作成したポリシーを選択。
・「確認して作成」で問題なさそうなら、「ユーザの作成」を押す
・最近はアクセスキーのアクセスはあまり推奨されていないみたいだけど、アクセスキーでアクセスする事にするので、作成したユーザに移動して、アクセスキーを作成を選択してアクセスキーを作成。
試す
ローカルのファイルを同期してみる。
#
export AWS_ACCESS_KEY_ID=アクセスキーID
#
export AWS_SECRET_ACCESS_KEY=シックレットアクセスキー
#
export AWS_DEFAULT_REGION=us-east-2
# #
aws s3 sync work_dir s3://work-bucket2/work_dir
※1 work_dir は対象のディレクトリ名
※2 Action が "s3:PutObject" だけだと、エラーになる。(ディレクトリがなかったら大丈夫かも)
fatal error: An error occurred (AccessDenied) when calling the ListObjectsV2 operation: Access Denied
※3 この状態で、同一ファイル名の変更があった場合、更新される。
ファイルサイズが同じだと、タイムスタンプが違っても更新されないと言う記事も見るが、タイムスタンプが違うだけでも更新されてるぽい。(CLIのバージョン?)
おしまい。