ユーザーが自分の資格のあるフォルダーにのみアクセスできるIAMポリシーを実装しようとしています。このコードはAmazonのドキュメントから入手しました
ユーザーが企業バケットのホームディレクトリにあるオブジェクトのみを一覧表示できるようにする
この例は、ボブにホームディレクトリを与える前の例に基づいています。ボブがホームディレクトリ内のオブジェクトを一覧表示できるようにするには、ListBucketにアクセスする必要があります。ただし、結果には、バケット内のすべてではなく、ホームディレクトリ内のオブジェクトのみが含まれるようにする必要があります。その方法で彼のアクセスを制限するには、s3:prefixというポリシー条件キーを使用し、値をhome /bob/に設定します。これは、プレフィックスがhome /bob/のオブジェクトのみがListBucket応答で返されることを意味します。
{
"Statement":[{
"Effect":"Allow",
"Action":"s3:ListBucket",
"Resource":"arn:aws:s3:::my_corporate_bucket",
"Condition":{
"StringLike":{
"s3:prefix":"home/bob/*"
}
}]
}
これは私にはうまくいきません。コードを実行すると、すべてのフォルダーとサブフォルダーが表示されます。私の変更したコードは次のようになります。
{
"Statement":[{
"Effect":"Allow",
"Action":"s3:ListBucket",
"Resource":"arn:aws:s3:::Test-test",
"Condition":{
"StringLike":{
"s3:prefix":"Test/*"
}
}]
}
上記のポリシーに関連付けられているユーザーのクレデンシャルを使用してc#でコードを実行すると、「テスト」の下にあるフォルダーだけでなく、すべてのフォルダーが取得されます...助けていただければ幸いです。