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認定クラウドプラクティショナー 改訂第2版」という本を書きました。
「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
「AWSではじめるLinux入門ガイド」という本を書きました。
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
AWSセルフマネージドAD環境にEC2 Windowsサーバーをドメイン参加する
AWSクイックスタートのActive Directory Domain Serv …
-
AWS Lambdaで「Process exited before completing request」
AWS lambdaで「Process exited before comple …
-
CodeCommitリポジトリの復号化のCloudTrailログ確認
ユーザーガイドAWS Key Management Service と AWS …
-
ヤマムギvol.27 Amazon Route 53プライベートホストゾーンとリゾルバーのデモをしました
今日は『AWS認定資格試験テキスト&問題集AWS認定ソリューションアーキ …
-
CloudFormation Lambda-backedカスタムリソースチュートリアルをやりました
チュートリアル: Amazon マシンイメージ ID を参照するの手順に従ってや …
-
AWS Organizationsでタグポリシーを設定しようとしました
Organizationsで[タグポリシーを有効にする]ボタンを押下しました。 …
-
Former2で既存リソースのCloudFormationテンプレート出力を試してみた
JAWS DAYS 2020の資料確認のお手伝いを少ししてまして、「ゼロからはじ …
-
Amazon ECSサービスでAWS App Meshを使用
AWS App MeshユーザーガイドのAWS App Mesh とAmazon …
-
Well-Architected Tool レンズヴァージョンアップ
当ブログのWell-Architectedレビューを久しぶりにやろうと思い、We …
-
S3インベントリ設定でインベントリファイルの作成を設定
インベントリレポートファイルはオブジェクトの一覧情報です。 日次、週次で定期作成 …