我可以将策略应用于AWS DynamoDB表,但是会根据访问它的用户的Cognito ID对其进行限制吗?
E.g。 Customer表的主哈希密钥等于Cognito ID。当除了共享相同ID的用户之外的任何人试图获得该项目时,他们将收到未经授权的例外。
(非DynanoDB策略可能也有效。)
答案 0 :(得分:24)
您应该可以使用与using an ID Provider相同的技术执行此类操作。您应该use the Cognito identifier作为政策的关键:
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": [
"dynamodb:DeleteItem",
"dynamodb:GetItem",
"dynamodb:PutItem",
"dynamodb:Query"
],
"Resource": ["arn:aws:dynamodb:REGION:123456789012:table/UserData"],
"Condition": {
"ForAllValues:StringEquals": {
"dynamodb:LeadingKeys": ["${cognito-identity.amazonaws.com:sub}"]}
}
}]
}