Cognito と一緒に AWS SDK for Android を使用して、(Login With Amazon 経由で) ユーザーを AWS リソースに認証しています。私がやろうとしているのは、次のように S3 バケットをセットアップすることです。
./my-bucket
├── first_user@email.com
└── second_user@email.com
したがって、my-bucket
バケットには、ユーザーの電子メール アドレスに基づくフォルダーが含まれます。
ポリシーを設定するための最初の刺し傷は次のとおりです。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["s3:ListBucket"],
"Resource": ["arn:aws:s3:::my-bucket"]
},
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:DeleteObject"
],
"Resource": [
"arn:aws:s3:::my-bucket/${www.amazon.com:user_id}",
"arn:aws:s3:::my-bucket/${www.amazon.com:user_id}/*"
]
}
]
}
テストとして、次のようなユーザーのフォルダーをダウンロードしようとしています。
final Map logins = new HashMap();
logins.put("www.amazon.com", token);
credentialsProvider.withLogins(logins);
final TransferManager transferManager = new TransferManager(credentialsProvider);
MultipleFileDownload download = transferManager.downloadDirectory("my-bucket", "first_user@email.com", new File("/sdcard/Download"));
ただし、これを実行すると、「禁止」例外が発生します。ポリシーを変更して、明示的に参照するのfirst_user@email.com
ではなく、正常に${www.amazon.com:user_id}
機能するようにします。
質問
- LWA ユーザーの電子メール アドレスを使用して、このように構成することは可能ですか?
- リクエストを行ったときに実際にどのパラメータが発生しているかを記録する方法はありますか?
このような参考文献を見たことがありますが、どれが実際に当てはまるかわかりません。リクエストを行ったときに、どのような値が出てくるかを何らかの方法で確認できれば素晴らしいと思います。
前もって感謝します。