2

「payroll-manager」というバケットがあります。cognito認証されたユーザーを使用してオブジェクトなどを配置できます.s3にフルアクセスできるようにIDプールの役割を変更しました(このに従いました)。ここまでは順調ですね。

ここで、ポリシーを変更して、ユーザーが自分のフォルダーからのみ読み取り、書き込みなどを行えるようにする必要があります。その方法をグーグルで調べたところ、AWS からこの例が見つかりました。Cognito ロールから s3 ポリシーへのフル アクセスを削除し、この例に従ってポリシーを作成しました。問題は、常に禁止メッセージが表示されることです。

IAM ポリシー シミュレーターを開きましたが、この単純なポリシーを設定することさえできないことがわかりました。 ここに画像の説明を入力

リソースを「*」に変更すると、次のことが可能になります。 ここに画像の説明を入力

この例では (バケットは 1 つしかありません)。* または ARN でリソースを使用するのは同じであってはなりませんか?

AWS のようにポリシーを定義できるようにするにはどうすればよいですか? ここに画像の説明を入力

4

1 に答える 1

0

TLDR; あなたがしていることは正しい方法であり、それは機能します。テストオブジェクトを修正してください。

シミュレーターで cognito-identity を設定する必要があるため、おそらく cognito のポリシーをエミュレートすることはできません。

シンプルなポリシーを渡すために欠けているのは、バケットに一致するようにオブジェクト arn を設定することだけです。ポリシーを payroll-manager に制限していますが、* でテストしています

オブジェクトを に設定しarn::aws::s3:::payroll-manager/example.txtて、単純なポリシーが機能することを確認してください

于 2021-03-03T00:03:33.010 に答える