identity level fine grained accessを使用してDynamoDBテーブルのユーザーデータにアクセスしようとしています。ユーザー認証のために私はDeveloper Authenicated Identitiesを使用しています。 Lambdaを使用したDynamoDBファイングレインアクセス
は私のポリシーが含まれていることを達成するために:{
"Action": [
"dynamodb:GetItem",
"dynamodb:UpdateItem"
],
"Effect": "Allow",
"Resource": "arn:aws:dynamodb:eu-west-1:817949094961:table/Users",
"Condition": {
"ForAllValues:StringEquals": {
"dynamodb:LeadingKeys": [
"${cognito-identity.amazonaws.com:sub}"
]
}
}
}
DynamoDBのテーブルからユーザーのデータにアクセスしようとしている - 私は、次のエラーが取得していますラムダ関数内:それだけで動作しますが
Error in updateUser: AccessDeniedException: User: arn:aws:sts::12312313:assumed-role/LambdAuthEditAccount/awslambda_123_20160410184653936 is not authorized to perform: dynamodb:UpdateItem on resource: arn:aws:dynamodb:eu-west-1:12312312:table/Users"}
をJS APIを使用してクライアントブラウザから直接DynamoDBにアクセスする場合は問題ありません。細粒度のアクセス制御が正しく機能します。上記のポリシーブロックは、ユーザー認証ロールとラムダ関数が想定しているロールの両方に追加されます。
ラムダ(上記のエラーに含まれている)が引き受けた役割がユーザー認証された役割に解決されるべきではないと思いますか?