バケットレベルでアクセスを分離する方法

ユースケース

状況によっては、バケットレベルでユーザーのアクセスを分離したい場合があります。この場合、各サブユーザーがそれぞれバケットを持ち、サブユーザーは自分のバケットにアクセスできますが、他のサブユーザーのバケットにはアクセスできなくなります。

 

概要としては以下のようなステップが含まれます。

  1. Wasabi ルートアカウントの作成またはアカウントへログイン
  2. サブユーザーごとにストレージバケットを作成
  3. サブユーザーを作成
  4. サブユーザーのストレージバケットへのアクセスを特定のバケットに制限する IAM ポリシーを各サブユーザーにつき作成
  5. サブユーザーに IAM ポリシーを添付

この記事では、以下の2人のサブユーザーを持つ企業アカウントを例とします。

  • panjack
  • stonecold

実行ステップ

サブユーザー「panjack」のバケット分離の例を見てみましょう。

1. バケットを作成

この例では「bucket-meant-for-panjack」というバケットを作成しています。

 

Screen_Shot_2021-04-09_at_1.22.46_PM.png

 

2. ユーザーを作成

この例では「panjack」というサブユーザーを作成しています。

 

Screen_Shot_2021-04-09_at_1.25.22_PM.png

 

3. IAMポリシーを作成

Wasabi ウェブコンソール UI で[ポリシー] -> [ポリシーを作成] を選択し、以下の例を使用してポリシーを作成します。

サブユーザー「panjack 」のアクセスを「bucket-meant-for-panjack」に限定するポリシー構文は以下のとおりです (使用の際には、この構文内のバケット名を編集する必要があります)。

 


{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:ListAllMyBuckets",
"Resource": "arn:aws:s3:::*"
},
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::bucket-meant-for-panjack",
"arn:aws:s3:::bucket-meant-for-panjack/*"
]
}
]
}

Screen_Shot_2021-04-09_at_1.35.08_PM.png

 

 注 :  コンソールでバケットやオブジェクトの操作を行うには、サブユーザーに「ListAllMyBuckets」許可が必要となります。これにより、サブユーザーはコンソールにログインした際にすべてのバケットを一覧表示できますが、コンテンツへのアクセスは許可のあるバケットからのみ可能となります。

 

4. 上記で作成したポリシーをサブユーザー「panjack」に添付します。

[ユーザー] --> 対象のサブユーザー (この場合は panjack) ---> [ポリシー] の順に移動し、上記で作成したポリシーをサブユーザーに添付します。

Screen_Shot_2021-04-09_at_1.37.15_PM.png

 

これで、このサブユーザーは自分のバケットのみにアクセスできるようになります。

 

------------------------------------------------------------------------------------------------------

 

次はサブユーザー「stonecold」に移ります。

上記と全く同じプロセスを繰り返します。

1. 例えば、「bucket-meant-for-stonecold」という名のバケットを作成します。

2. サブユーザー「stonecold」を作成します。

3. このサブユーザーに適切なバケット名を持つ IAM ポリシーを作成します。以下のポリシーの例ではバケット名が異なっています。

 


{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:ListAllMyBuckets",
"Resource": "arn:aws:s3:::*"
},
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::bucket-meant-for-stonecold",
"arn:aws:s3:::bucket-meant-for-stonecold/*"
]
}
]
}

4. 最後に、このポリシーを「stonecold 」サブユーザーに添付します。

------------------------------------------------------------------------------------------------------

 

サブユーザーの要件が数百から数千件存在する企業の場合には、以下の自動化アプローチを使用することができます。

Wasabi でインフラストラクチャ設計を自動化する方法

 

 

 

他にご質問がございましたら、リクエストを送信してください