我可以将策略应用于 AWS DynamoDB 表,但根据访问它的用户的 Cognito ID 对其进行限制吗?
例如,客户表的主哈希键等于 Cognito ID。当共享相同 ID 的用户以外的任何人试图获取该项目时,他们将收到未经授权的异常。
(非 DynanoDB 策略可能也有效。)
我可以将策略应用于 AWS DynamoDB 表,但根据访问它的用户的 Cognito ID 对其进行限制吗?
例如,客户表的主哈希键等于 Cognito ID。当共享相同 ID 的用户以外的任何人试图获取该项目时,他们将收到未经授权的异常。
(非 DynanoDB 策略可能也有效。)
您应该能够使用与使用 ID Provider相同的技术来执行此类操作。您应该使用 Cognito 标识符作为策略中的键:
{
"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}"]}
}
}]
}