我有一个带有自定义属性 organization_id 的 Cognito 用户池。
一个组织可能有多个用户。可以有多个组织。
另一个 DynamoDB 表用于维护类别,其中 _id 和 organization_id 是分区键。
类别可以由组织拥有,以便属于该特定组织的用户仅在这些类别中执行某些操作。
现在,我该如何创建 IAM 策略,以便它使用 organization_id 而不是 sub/user_id,就像在此处所解释的那样? http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/specifying-conditions.html
所以我的主要需求是通过Cognito在IAM策略中获取自定义用户池属性。这是否可能?
现在,我该如何创建 IAM 策略,以便它使用 organization_id 而不是 sub/user_id,就像在此处所解释的那样? http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/specifying-conditions.html
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowAccessToOnlyItemsMatchingUserID",
"Effect": "Allow",
"Action": [
"dynamodb:GetItem",
"dynamodb:BatchGetItem",
"dynamodb:Query",
"dynamodb:PutItem",
"dynamodb:UpdateItem",
"dynamodb:DeleteItem",
"dynamodb:BatchWriteItem"
],
"Resource": [
"arn:aws:dynamodb:us-west-2:123456789012:table/GameScores"
],
"Condition": {
"ForAllValues:StringEquals": {
"dynamodb:LeadingKeys": [
"${cognito:organisation_id(?)}"
],
"dynamodb:Attributes": [
"UserId",
"GameTitle",
"Wins",
"Losses",
"TopScore",
"TopScoreDateTime"
]
},
"StringEqualsIfExists": {
"dynamodb:Select": "SPECIFIC_ATTRIBUTES"
}
}
}
]}
所以我的主要需求是通过Cognito在IAM策略中获取自定义用户池属性。这是否可能?