S3バケットのリクエスタ支払い
2021/09/19
S3バケットのリクエスタ支払いを試しました。
目次
バケットの設定
検証用のS3バケットを作ろうと、「requester-payment」ってバケット作ってみたら作れました。
世界中でこの名前のバケットを作っているのは自分だけということです。
乱数とか日付とかつけなくてもバケットを作れたときって嬉しいですよね。
テンションがあがってきました。
S3バケットのプロパティでリクエスタ支払いを有効にしました。
Payerの設定をオーナーアカウントで確認しました。
1 2 3 4 5 |
$ aws s3api get-bucket-request-payment --bucket requester-payment { "Payer": "Requester" } |
支払い者がRequesterになっているということですね。
これでリクエスタ支払いになっていることがCLIからも確認できました。
パブリックアクセスを試してみる
リクエスタ支払いを有効にしたバケットでは匿名アクセスはできなくなります。
それはそうですね。
一応試してみます。
パブリックアクセスブロックを4つとも解除して、
画像をアップロードしてACLでパブリック読み取りを許可、
バケットポリシーでパブリックにしても、
AccessDeniedになりました。
それはそうですね。
他のアカウントからリクエスト
最小権限の原則を実装しましょう。
バケットポリシーです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/yamashita" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::requester-payment/*" } ] } |
別アカウントのIAMユーザー側の該当アクション向けのポリシーです。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:GetObject", "Resource": [ "arn:aws:s3:::requester-payment/*" ] } ] } |
アップロードしておいたオブジェクトをダウンロードしました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
$ aws s3api get-object \ --bucket requester-payment \ --key s3-req-pay-1.png \ s3-req-pay-1.png \ --request-payer requester { "AcceptRanges": "bytes", "LastModified": "2021-08-28T07:23:10+00:00", "ContentLength": 79219, "ETag": "\"8746113efe350cb8b1a7f143a55aa5a1\"", "ContentType": "image/png", "Metadata": {}, "RequestCharged": "requester" } |
ダウンロードできました。
–request-payer requesterを付与することで、リクエスタ支払は承認しているんですよってことを示してます。
–request-payer requesterなしで実行するとAn error occurred (AccessDenied) when calling the GetObject operation: Access Deniedエラーになります。
x-amz-request-payer : requesterがヘッダーにない状態なのでリクエスト自体が許可されません。
後日の請求書確認
リクエストした側でList1回、Get4回請求対象になっていることが確認できました。
最後までお読みいただきましてありがとうございました!
【PR】 「AWS認定試験対策 AWS クラウドプラクティショナー」という本を書きました。
【PR】 「AWSではじめるLinux入門ガイド」という本を書きました。
【PR】 「ポケットスタディ AWS認定 デベロッパーアソシエイト」という本を書きました。
【PR】 「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル」という本を書きました。

開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
-
Amazon LinuxにRedmine をインストールする(手順整理版)
Amazon LinuxにRedmineをインストールしました手順を記載します。 …
-
-
AWS DataLake 構築ハンズオンに行ってきました
AWSJ大阪が増床されて2019年10月限定でAWS pop-up loftとい …
-
-
AWS Firewall Managerを設定して結果を確認
CloudFront対応のポリシーとして作成したかったので、Globalを選択し …
-
-
EC2 プレイスメントグループを試してみました
やったことないのでやってみたやつです。 プレイスメントグループの作成 まず、EC …
-
-
AWS Organizations SCPで許可ポリシーの設定をし継承の関係を確認する
ユーザーガイドのサービスコントロールポリシーの例にはDeny(拒否)ばっかりでA …
-
-
静的と動的って何ですか?と営業さんに聞かれたので端的に説明してみました
AWS認定クラウドプラクティショナーの勉強をしている営業さんに、「S3で静的オブ …
-
-
RDSリザーブドDBインスタンスを購入しました
リザーブドインスタンス推奨事項を確認したで確認した結果、購入したほうがよさそうで …
-
-
EC2 Ubuntu DesktopにRDP
Ubuntu Desktopが必要になりましたので、こちらのAWS EC2でデス …
-
-
AWS VPC ネットワークACLでHTTP(80)のみ許可する
ユーザーガイドのカスタムネットワーク ACLのうち、HTTP(80)を許可する設 …
-
-
AWS Savings Plansを検討しました
今、個人でAWSアカウントを7つ使っています。 Savings Plansが使え …