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回請求対象になっていることが確認できました。
最後までお読みいただきましてありがとうございました!
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。


開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
-
「JAWS-UG DE&I AWS re:Invent 2024 recap サーバーレス ハンズオン」でサポーターしてきました
JAWS-UG DE&I開催の「AWS re:Invent 2024 r …
-
-
JAWS-UG Osaka 第14回勉強会 「DIY」 〜自社内システムを作る側からの物申す〜に参加、運営、登壇しました
先日、JAWS-UG Osaka 第14回勉強会 「DIY」 〜自社内システムを …
-
-
[JapanTaxi] Athena 指向アナリティクス 〜真面目に手を抜き価値を得よ〜(AWS Summit Tokyo 2017)を聞いてきました
Athenaのユースケースとして聞きにいきましたが、最近触ってるRe:dashも …
-
-
Amazon LinuxのNginx+RDS MySQLにレンタルWebサーバーからWordPressを移設する(失敗、手戻りそのまま記載版)
勉強のためブログサイトを長らくお世話になったロリポップさんから、AWSに移設する …
-
-
AWS Organizationsのルートユーザー管理(Root user management)でメンバーアカウントのルートユーザー認証を無効にしました
2024年11月発表のAWS Organizations を使用するお客様のため …
-
-
Lambda関数をPython3.6から3.9に変更
CodeGuru ProfilerでLambda関数(Python 3.9)のパ …
-
-
Kinesis Data Analyticsの検索結果をKinesis Data FirehoseからS3バケットに保存する
Kinesis Data AnalyticsをKinesis Data Stre …
-
-
CloudWatch Logs機密データ保護を設定しました
Amazon CloudWatch Logs を使用して機密データを保護するがリ …
-
-
Amazon API Gatewayでモックを作る
超シンプルなAPI Gatewayのサンプルがほしかったので、ユーザーガイドの手 …
-
-
GoogleForm,GASからAPI Gateway, Lambdaで入力情報をDynamoDBに格納する
vol.26 AWS認定試験テキスト認定クラウドプラクティショナーのデモ(Dyn …