CLIでS3バケットを作成しポリシーを設定する
CLIコマンドを使うのが本当に好きで、それが私の日常だ。今日は「AWSでS3バケットを作成する方法」と「S3バケットポリシーを設定する方法」をCLIで説明する。

CLIコマンドを使うのが本当に好きで、それが私の日常だ。今日は「AWSでS3バケットを作成する方法」と「CLIでS3バケットポリシーを設定する方法」を説明する。始めよう...
まず、AWS_ACCESS_KEYとAWS_SECRET_ACCESS_KEYを設定する必要がある。つまり、事前にaws configureコマンドを実行する必要がある。それができれば先に進める。
まずS3バケットを確認する
最初に、どのバケットがあるかを確認する必要がある。aws s3 lsコマンドを実行すると、既存のバケットが返される。
➜ ~ aws s3 ls
2021-04-26 11:01:32 ercanermis
2021-05-20 19:14:04 ercanermis-aws-ssm-logs
2021-04-26 11:01:43 ercanermis-com
2021-04-26 11:02:08 www-ercanermis-comS3バケットを作成する
S3バケット作成コマンドもシンプルで簡単だ。aws s3 mbだ。実行して再度バケットを一覧表示しよう。
➜ ~ aws s3 mb s3://hello-this-is-new-bucket
make_bucket: hello-this-is-new-bucket確認のため、再度すべての既存バケットを一覧表示する。
➜ ~ aws s3 ls
2021-04-26 11:01:32 ercanermis
2021-05-20 19:14:04 ercanermis-aws-ssm-logs
2021-04-26 11:01:43 ercanermis-com
2022-07-17 14:23:29 hello-this-is-new-bucket
2021-04-26 11:02:08 www-ercanermis-comはい、新しく作成したバケットが表示されている。バケット名はhello-this-is-new-bucketだ。
S3バケットのバケットポリシーを確認する
前のステップでバケットを作成したが、バケットポリシーはどうだろう?まず、既存のポリシーがあるかどうかを確認する必要がある。以下が例だ:
➜ ~ aws s3api get-bucket-policy --bucket hello-this-is-new-bucket
An error occurred (NoSuchBucketPolicy) when calling the GetBucketPolicy operation: The bucket policy does not exist
新しく作成されたバケットにはデフォルトでポリシーがない。では、CLIでポリシーを作成する時間だ。
バケットポリシーを作成する
ポリシーはJSON形式である必要があり、JSONファイルを作成できる。私のバケットポリシーは、secret-folder内のものを除き、すべてのユーザーがhello-this-is-new-bucketから任意のオブジェクトを取得することを許可する。また、AWSアカウント"1234-5678-9012"の"root"ユーザーにputとdeleteの権限を付与する。
my-s3-bucket-policy.json:
{
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::hello-this-is-new-bucket/*"
},
{
"Effect": "Deny",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::hello-this-is-new-bucket/secret-folder/*"
},
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::123456789012:root"
},
"Action": [
"s3:DeleteObject",
"s3:PutObject"
],
"Resource": "arn:aws:s3:::hello-this-is-new-bucket/*"
}
]
}S3バケットにバケットポリシーを設定する
ポリシーの設定も簡単だ。以下で確認できる。
aws s3api put-bucket-policy --bucket hello-this-is-new-bucket --policy file://my-s3-bucket-policy.jsonput-bucket-policyコマンドの後、aws cliは出力を出さないが、CLIでバケットポリシーを確認する方法を知っていれば、確認したい場合に実行できる。
この記事を読んでくれて本当にありがとう。Happy coding!
Ercan の他のサイト
同じ著者、別の領域のサイトが2つ。