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認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。
「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
「AWSではじめるLinux入門ガイド」という本を書きました。
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
関連記事
-
-
Pepperで撮影した写真をAmazon Rekognitionで分析してその結果をPepperがしゃべる ~(1)AWS編~
Pepperの機能を使えるところは使って、何かしたいなあと思ってまして。 目(カ …
-
-
別アカウントのVPCからAWS PrivateLinkを使う
VPC エンドポイントサービス (AWS PrivateLink)を参考にしまし …
-
-
「re:CAP ~サーバーワークス re:Invent 2018 報告会~」でre:Invent2018について思われたことを聞かせていただいた
サーバーワークスさんのre:Invent re:CAPにおじゃましました。 re …
-
-
JAWS DAYS 2018 「Cost-Driven AWS クラウドアーキテクチャデザインとコスト最適化方法 – Cost-Driven AWS Cloud Architecture Design : The Lean Startup on AWS」を聞きました
以下は、思ったことや気になったことをメモしていますので、必ずしも登壇者の発表内容 …
-
-
AWSアカウント内のLambda関数を削除するLambda(Python)
やりたいこと 特定のAWSアカウントの特定リージョンのAWS Lambda関数を …
-
-
CodeGuru ProfilerでLambda関数(Python 3.9)のパフォーマンスを確認した
CodeGuru ProfilerでPython 3.9のLambda関数の推奨 …
-
-
AWS CDKでリージョンをまたいだクロススタックリファレンスはできなかった
例えばこんなコードが実行できるかというと、 [crayon-6965193010 …
-
-
AWS BackupでRDSスナップショットをクロスリージョンコピー
クロスリージョンでコピーしたい対象と理由 このブログはブログのアーキテクチャをコ …
-
-
Well-Architected Tool レンズヴァージョンアップ
当ブログのWell-Architectedレビューを久しぶりにやろうと思い、We …
-
-
API Gatewayで顧客レベルの使用量プランを設定する
API GatewayのAPIキーを使って使用量プランでのスロットリングも設定し …



