2024-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が表示されて、アップロードや削除等全操作が行える。
※本記事内容の無断転載を禁じます。
ご連絡は以下アドレスまでお願いします★
Wav2Lipのオープンソース版を改造して外部から呼べるAPI化する
Wav2Lipのオープンソース版で静止画の口元のみを動かして喋らせる
【iOS】アプリアイコン・ロゴ画像の作成・設定方法
オープンソースリップシンクエンジンSadTalkerをAPI化してアプリから呼ぶ【2】
オープンソースリップシンクエンジンSadTalkerをAPI化してアプリから呼ぶ【1】
【Xcode】iPhone is not available because it is unpairedの対処法
【Let's Encrypt】Failed authorization procedure 503の対処法
【Debian】古いバージョンでapt updateしたら404 not foundでエラーになる場合
ファイアウォール内部のWindows11 PCにmacOS Sequoiaからリモートデスクトップする
Windows11+WSL2でUbuntuを使う【2】ブリッジ接続+固定IPの設定
進研ゼミチャレンジタッチをAndroid端末化する
VirtualBoxの仮想マシンをWindows起動時に自動起動し終了時に自動サスペンドする
Googleスプレッドシートを編集したら自動で更新日時を入れる
Linuxでtar.xz形式のファイルを解凍する
【C/C++】小数点以下の切り捨て・切り上げ・四捨五入
タスクスケジューラで変更を適用できません。ユーザーアカウントが不明であるか、パスワードが正しくないか、またはユーザーアカウントにタスクを変更する許可がありません。と出た
GitLabにHTTPS経由でリポジトリをクローン&読み書きを行う
Intel MacBookAir2020にWindows10→Windows11をインストールする