S3 にホームという名前のバケットがあり、その下に複数のフォルダがあります。特定のユーザーが、パス home/A/B/folder1 の下の folder1 にアクセスできるようにしたいと考えています。ただし、このホーム バケット内の他のバケットや他のフォルダを彼に見せたくありません。
誰でもこのポリシーを手伝ってくれますか?
S3 にホームという名前のバケットがあり、その下に複数のフォルダがあります。特定のユーザーが、パス home/A/B/folder1 の下の folder1 にアクセスできるようにしたいと考えています。ただし、このホーム バケット内の他のバケットや他のフォルダを彼に見せたくありません。
誰でもこのポリシーを手伝ってくれますか?
Amazon S3にはいくつかのユーザー ポリシーの例が用意されており、目的のシナリオについては、例: バケット内のフォルダーへの各 IAM ユーザー アクセスを許可する で説明しています。
この例では、Alice と Bob の 2 人の IAM ユーザーがバケット examplebucket にアクセスできるようにして、オブジェクトを追加、更新、および削除できるようにします。ただし、各ユーザーのアクセスをバケット内の 1 つのフォルダーに制限したいと考えています。
そこで説明されているように、ユーザーごとに個別のポリシーをアタッチできますが、当面はIAM ポリシー変数を使用して対処するのが最適です。
ただし、個々のユーザーにポリシーをアタッチする代わりに、ポリシー変数を使用する単一のポリシーを作成し、そのポリシーをグループにアタッチできます。[...] 次のポリシー例では、examplebucket/${aws:username} フォルダーで一連の Amazon S3 アクセス許可を許可します。ポリシーが評価されると、ポリシー変数 ${aws:username} がリクエスタのユーザー名に置き換えられます。[...]
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:PutObject", "s3:GetObject", "s3:GetObjectVersion", "s3:DeleteObject", "s3:DeleteObjectVersion" ], "Resource":"arn:aws:s3:::examplebucket/${aws:username}/*" } ] }