2023-05-22
AWSのストレージサービスS3で作成したバケットをグループで共有して使うような用途を考える。
それにはAWSの代表アカウントがS3でバケットを作成し、さらにアカウントのサブユーザー=IAMユーザー=を作成し、アクセス権を付与することで実現する。
1、S3バケットの作成
シェアしたいS3バケットを代表アカウントで作成。ここでは「my-share-bucket777」とする。
S3 Management Consoleを開く。
https://s3.console.aws.amazon.com/s3/get-started?region=ap-northeast-1
「バケットを作成」
バケット名:my-share-bucket777
AWSリージョン
アジアパシフィック(東京)
ACL無効
パブリックアクセスをすべてブロック
バケットのバージョニング
無効にする
サーバー側の暗号化
無効にする
オブジェクトロック
無効にする
「バケットを作成」で作成完了。
2、バケットを使わせたいIAMユーザーの作成
以下のページを参考に、このバケットを使わせたいIAMユーザーを作成する。
【Amazon/AWS】共同作業用サブユーザー(IAM)の作成・管理
ここでは、IAMユーザー名を「iam-hogeuser22」とした。アクセス許可指定に必要なARNは、ユーザー名をクリックすれば「ユーザーのARN」として表示される。
ここでは「arn:aws:iam::111122223333:user/iam-hogeuser22」であるとする。
3、アクセス権限の付与
バケット一覧に戻って、
https://s3.console.aws.amazon.com/s3/buckets?region=ap-northeast-1
さきほど作成した「my-share-bucket777」をクリック。
「アクセス許可」タブをクリック。
「バケットポリシー」→「編集」でエディタ画面を開く。
iam-hogeuser22に表示・読み込み・書き込み、基本となる全アクセスを付与するJSONを書く。以下。
JSON | s3-allow-access-to-iam-user.json | GitHub Source |
{ "Version": "2012-10-17", "Statement": [ { "Sid": "statement1", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/iam-hogeuser22" }, "Action": [ "s3:GetBucketLocation", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::my-share-bucket777" ] }, { "Sid": "statement2", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/iam-hogeuser22" }, "Action": [ "s3:PutObject", "s3:PutObjectAcl", "s3:GetObject", "s3:GetObjectAcl", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::my-share-bucket777/*" ] } ] }
PrincipalでIAMユーザのARNを、Resourceでバケット名を指定すればよい。
これで、上記IAMユーザーでログインしてS3のバケット管理画面を開けば、my-share-bucket777が表示されて、アップロードや削除等全操作が行える。
※本記事内容の無断転載を禁じます。
ご連絡は以下アドレスまでお願いします★
さくらインターネットでPython MecabをCGIから使う
さくらインターネットのPHPでAnalytics-G4 APIを使う
インクルードパスの調べ方
【Git】特定ファイルを除外する.gitignore
【Ubuntu/Debian】NVIDIA関係のドライバを自動アップデートさせない
【Python】Spacyを使用して文章から出発地と目的地を抜き出す
HomeBrewでApache2を入れて自動起動つきで動かしPHPモジュールと連携する
macOSに標準付属のApacheを自動起動つきで動かす
HomeBrewでPostgreSQLを入れて自動起動つきで動かす
進研ゼミチャレンジタッチをAndroid端末化する
Windows版Google Driveが使用中と言われアンインストールできない場合
Windows11+WSL2でUbuntuを使う【2】ブリッジ接続+固定IPの設定
【C/C++】小数点以下の切り捨て・切り上げ・四捨五入
【PHP】Mail/mimeDecodeを使ってメールの中身を解析(準備編)
【Apache】サーバーに同時接続可能なクライアント数を調整する
【Hackintosh】Z370 MORTARにmacOS Sonomaをインストール
cannot guess build type; you must specify oneと言われた場合
【MinGW】Windowsでgcc/g++コンパイラを使って開発する