SubUser に bucket 単位のアクセス権を付与する
Bucket Policy を使用すると、各 SubUser に必要な bucket へのアクセス権だけを付与できます。SubUser のロールはアカウント内のすべての bucket に適用されるため、この方法が必要になります。たとえば、Read ロールを持つ SubUser は、すべての bucket を読み取れます。
例として、bucket-1、bucket-2、bucket-3 の 3 つの bucket があり、3 人の SubUser にそれぞれ 1 つの bucket だけへのアクセスを許可する場合を考えます。
前提条件
- HCM-04 以外の cluster で Object Storage が有効になっている FPT Cloud アカウント。HCM-04 では、代わりに IAM User を使用してください。
- 同じ Region に作成された bucket。
アクセス権を付与する
-
デフォルトでどの bucket にもアクセスできないように、各 SubUser を None ロールで作成します。詳しくは、SubUser を管理するを参照してください。
-
各 bucket に、SubUser がその bucket を使用できるようにする Bucket Policy を追加します。詳しくは、Bucket Policy を設定するを参照してください。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": ["arn:aws:iam::SUBUSER_ACCOUNT_ID:user/SUBUSER_NAME"]
},
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::YOUR_BUCKET_NAME",
"arn:aws:s3:::YOUR_BUCKET_NAME/*"
]
}
]
}フィールド 意味 Versionポリシー言語のバージョン。通常は 2012-10-17です。EffectAllowまたはDeny。Principalアクセス権を付与する SubUser。 SUBUSER_ACCOUNT_IDとSUBUSER_NAMEを SubUser の情報に置き換えます。Action許可する操作。 s3:*はすべての操作を許可します。権限を絞る場合は、s3:GetObjectなどの個別の操作を列挙します。Resource対象の bucket と、その中のすべての object。 -
各 SubUser の Access Key を作成し、その SubUser を使用するユーザーまたはアプリケーションに渡します。
これで、各 SubUser は、自身が Principal として指定されたポリシーを持つ bucket にのみアクセスできます。