S3バケットの「フォルダ」にアイテムがあります。ファイルへの「パス」には、ファイルをアップロードしたユーザーのIDが含まれており、S3管理コンソールに「すべてのバケット/ [MY_BUCKET]/us-east-1:080ffd35-c00e-4e33-877f-3ec57be4b128」と表示されます「$ {cognito場合、私はわからなかったので、私は、トラブルシューティングの手順として、アイデンティティIDにハードコーディングされてきたAWS s3:ListBucketアクションの結果、s3の条件付きStringLikeステートメントを使用してアクセスが拒否されます。
"Condition": {
"StringLike": {
"s3:prefix": [
"us-east-1:080ffd35-c00e-4e33-877f-3ec57be4b128/*"
]
}
}
:私はすべてのCognitoに添付IAMポリシーには、次の条件文が含まれてユーザーを認証しています-identity.amazonaws.com:sub} "には正しい文字列が含まれていました。しかし、特定のアイデンティティIDがエンコードされていても、それはまだ機能せず、バケットの内容を表示しようとするとアクセス拒否エラーが発生します。私は、StringLikeが接頭辞の中の指定された文字列を探していると考えて正しいですか?私は行方不明の何か他にありますか?
私は以下の私の完全なIAMポリシーを含めました:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::[MY_BUCKET]"
],
"Condition": {
"StringLike": {
"s3:prefix": [
"us-east-1:080ffd35-c00e-4e33-877f-3ec57be4b128/*"
]
}
}
},
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:PutObjectAcl",
"s3:GetObjectAcl"
],
"Resource": [
"arn:aws:s3:::[MY_BUCKET]/${cognito-identity.amazonaws.com:sub}*",
"arn:aws:s3:::[MY_BUCKET]/${cognito-identity.amazonaws.com:sub}/*"
]
}
]
}
S3バケット自体は正常にこの作業を行うと、アクセスを防止するためにS3管理コンソール上の任意の特定の権限設定を必要としていバケットの内容を一覧表示しようとするとエラーが拒否されましたか?
追加編集:
- 私は 文書から把握することができませんでした質問のカップル。バケットにポリシーを設定する必要はありますか? I ドキュメントの例で、 バケットにポリシー自体が必要であることを指定するものは表示されません。
- バケットの権限 は関係しますか?もう一度、私は IAMポリシーのドキュメントで指定されていることについて何も見ていませんでした。
あなたは「それはまだ動作しない」とはどういう意味ですか?あなたは何をしようとしていますか(アップロード/ダウンロード/リスト)と何かエラーがありますか?あなたのポリシーは、[Amazon Cognito認証の理解第3部:ロールとポリシー](https://aws.amazon.com/blogs/mobile/understanding-amazon-cognito-authentication-part-3-roles-and)のものと似ています。 -policies /)ので、うまくいくはずです。 –
バケットの内容を一覧表示しようとするとアクセス拒否エラーが発生します。 – reggie3