ファイルを置くだけ用バケット

2023/11 の作業


ファイルのバックアップ様に置くだけのバケット(パブリックアクセスできない)を作成。

ファイルは「aws cli」でファイルを置く予定。


S3のバケット作成を参考に、

・バケットの作成

・ポリシーの作成

・ポリシーを持ったユーザを作成

を行う。

バケットの作成

前回と同じ様に作成するけど、「このバケットのブロックパブリックアクセス設定-パブリックアクセスを全てブロック」をチェックして作成する。

s3b-1


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

s3b-2



ポリシーの作成

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のバージョン?)


おしまい。