2023-05-23
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が表示されて、アップロードや削除等全操作が行える。
※本記事内容の無断転載を禁じます。
ご連絡は以下アドレスまでお願いします★
☆ServerNote.NETショッピング↓
ShoppingNote / Amazon.co.jp
☆お仲間ブログ↓
一人社長の不動産業務日誌
nvidia-smiを1秒ごとに実行してGPU使用率をモニタリング
TSUKUMOのマルチGPUパソコンWA9J-X211/XTのUbuntu Server 22.04でMYCOEIROINK作成コードを実行し音声合成モデルをトレーニングする
TSUKUMOのマルチGPUパソコンWA9J-X211/XTにUbuntu Server 22.04とCOEIROINK Engineを導入する
Python venv(仮想環境作成)でError: Command returned non-zero exit status 1のエラー対処法
【Ubuntu】プロジェクトごとに複数のPythonバージョンを使い分ける
【PHP】フォーム入力を受け取り出力する
【Ubuntu】aptでインストールしたapache2にソースコンパイルしたphpをマルチスレッドモードで組み込む
【PHP】HTMLファイルを読み込んで文字列変換して出力する
TSUKUMOのマルチGPUパソコンWA9J-X211/XTにUbuntu Server 22.04とVOICEVOX Engineを導入する
Googleファミリーリンクで子供の端末の現在地がエラーで取得できない場合
【Windows10】リモートデスクトップ間のコピー&ペーストができなくなった場合の対処法
Windows版Google Driveが使用中と言われアンインストールできない場合
Windows11+WSL2でUbuntuを使う【2】ブリッジ接続+固定IPの設定
【Apache】サーバーに同時接続可能なクライアント数を調整する
【C/C++】小数点以下の切り捨て・切り上げ・四捨五入
Androidホームで左にスワイプすると出てくるニュース共を一切表示させない方法
Googleスプレッドシートを編集したら自動で更新日時を入れる
size_tとssize_tを使い分けてSegmentation Faultを予防する