皆さんこんにちは!
この記事では、オブジェクトストレージ「Wasabi」を使って、
・各ユーザーのプライベートフォルダの作成方法
・フォルダに管理者のみがアクセスできる設定方法
を初心者向けに紹介していきます🔰

分かりました!でも、どうやってやるんですか?

バケットにアイちゃん専用フォルダを作るから、そこにファイルをアップロードしてね。
皆はお互いのファイルを見られないけど、私は管理者として全部見られるように設定するよ。

仕組みとしてはこんなイメージですか…?


こんなイメージだね。では、さっそく設定してみよう!
準備
ルートアカウントでログインし、管理者ユーザーを作成します。
その後、管理者ユーザーでログインし、サブユーザーを作成しておきます。
管理者ユーザー | administrator |
サブユーザーA | subuser-A |
サブユーザーB | subuser-B |
ユーザーのプライベートフォルダの作成方法
1.各サブユーザー専用のフォルダをバケット内に作成
まず、管理者ユーザーでWasabiにログインし、対象のバケットを選択します。

「フォルダを作成」から、サブユーザー専用のフォルダを作ります。
オブジェクト に作成したフォルダが表示されたらOKです。

2.サブユーザー用のポリシーを作成、適用
ポリシーとは、”誰がどこまでアクセスできるかを決めるルール”です。
ポリシーを作ることで、特定のユーザーのアクセスを特定のフォルダに限定することができます。
ここでは、サブユーザーAが「user-A」フォルダにのみアクセスできるよう設定します。
まず、メニューの「ポリシー」を選択し、右上「ポリシーを作成」をクリックします。

ポリシー名・説明(任意)・ポリシーエディタを入力し、「ポリシーを作成」します。

▼ポリシーエディタ内容
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowUserToSeeBucketListInTheConsole",
"Effect": "Allow",
"Action": [
"s3:ListAllMyBuckets",
"s3:GetBucketLocation",
"s3:GetBucketCompliance"
],
"Resource": "arn:aws:s3:::*"
},
{
"Sid": "AllowRootAndHomeListingOfUserFolder",
"Effect": "Allow",
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::file-2024",
"Condition": {
"StringEquals": {
"s3:delimiter": "/",
"s3:prefix": [
"",
"user-A/"
]
}
}
},
{
"Sid": "AllowListingOfUserFolder",
"Effect": "Allow",
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::file-2024",
"Condition": {
"StringLike": {
"s3:prefix": "user-A/*"
}
}
},
{
"Sid": "AllowAllS3ActionsInUserFolder",
"Effect": "Allow",
"Action": "s3:*",
"Resource": "arn:aws:s3:::file-2024/user-A/*"
}
]
}{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowUserToSeeBucketListInTheConsole",
"Effect": "Allow",
"Action": [
"s3:ListAllMyBuckets",
"s3:GetBucketLocation",
"s3:GetBucketCompliance"
],
"Resource": "arn:aws:s3:::*"
},
{
"Sid": "AllowRootAndHomeListingOfUserFolder",
"Effect": "Allow",
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::file-2024",
"Condition": {
"StringEquals": {
"s3:delimiter": "/",
"s3:prefix": [
"",
"user-A/"
]
}
}
},
{
"Sid": "AllowListingOfUserFolder",
"Effect": "Allow",
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::file-2024",
"Condition": {
"StringLike": {
"s3:prefix": "user-A/*"
}
}
},
{
"Sid": "AllowAllS3ActionsInUserFolder",
"Effect": "Allow",
"Action": "s3:*",
"Resource": "arn:aws:s3:::file-2024/user-A/*"
}
]
}
作成したポリシーは、ポリシーリストに追加されます。

ポリシーが作成できたら、このポリシーを該当のユーザーに適用します。
メニューの「ユーザー」から、該当のユーザーを選び、「ポリシー」を選択します。

先ほど作成したポリシーを検索し、出てくる候補から選択します。
下方「subuser-Aに付加されたポリシー」に追加されたらOKです。

これで、サブユーザーAのプライベートなフォルダが作成できました。
※同様に、他のサブユーザーのフォルダとポリシーも作ります。👉《手順》
①フォルダ作成
「フォルダを作成」から、サブユーザー専用のフォルダを作ります。
オブジェクト に作成したフォルダが表示されたらOKです。

②ポリシー作成
メニューの「ポリシー」から「ポリシーを作成」し、
ポリシー名・説明(任意)・ポリシーエディタを入力します。
ポリシーエディタの内容は以下です。黄文字部分はサブユーザー毎に変更してください。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowUserToSeeBucketListInTheConsole",
"Effect": "Allow",
"Action": [
"s3:ListAllMyBuckets",
"s3:GetBucketLocation",
"s3:GetBucketCompliance"
],
"Resource": "arn:aws:s3:::*"
},
{
"Sid": "AllowRootAndHomeListingOfUserFolder",
"Effect": "Allow",
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::file2024",
"Condition": {
"StringEquals": {
"s3:delimiter": "/",
"s3:prefix": [
"",
"user-B/"
]
}
}
},
{
"Sid": "AllowListingOfUserFolder",
"Effect": "Allow",
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::file2024",
"Condition": {
"StringLike": {
"s3:prefix": "user-B/*"
}
}
},
{
"Sid": "AllowAllS3ActionsInUserFolder",
"Effect": "Allow",
"Action": "s3:*",
"Resource": "arn:aws:s3:::file2024/user-B/*"
}
]
}
③ポリシー適用
メニューの「ユーザー」から、ポリシーを適用したいユーザーを選びます。
「ポリシー」で今作成したポリシーを検索し、出てくる候補から選択します。

各フォルダに管理者のみがアクセスできる設定方法
3.管理者が各サブユーザーのフォルダにアクセスできるポリシーを作成
これまでと同様の手順で、管理者ユーザー用のポリシーを作成・適用します。

▼ポリシーエディタ内容
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:ListAllMyBuckets",
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::file2024"
},
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:DeleteObject"
],
"Resource": [
"arn:aws:s3:::file2024/user-A/*",
"arn:aws:s3:::file2024/user-B/*"
]
}
]
}
設定は以上です!
実際に、サブユーザー・管理者ユーザーの挙動を確認してみましょう!
【サブユーザー】
サブユーザーAでログインし、対象のバケットを選択します。

自分のフォルダにファイルをアップロードしてみます。
※ファイルのアップロード方法はこちら

できました!

他のサブユーザーのフォルダにアクセスしようとすると、以下のようにエラーが出ます。

次に、管理者ユーザーの挙動を確認してみましょう。
以下のように、各サブユーザーのフォルダにアクセスでき、中のファイルも操作できます。

まとめ
フォルダレベルでユーザーのアクセス権を制限できることで、
・各ユーザーごとのデータのプライバシーが確保される
・他のデータへの不正アクセスを防止できる
・特定のユーザーが必要なデータを横断的に管理できる
などのメリットがあります。
企業内のデータをより安全かつ効率的に管理できますので、ぜひ試してみてください!
アイちゃん、このファイル、明日までにWasabiにアップロードしてくれる?