1

カスタム属性organisation_idを持つ1つのCognitoユーザプールがあります。 1つの組織に複数のユーザーが存在することがあります。複数の組織が存在する可能性があります。 _idおよびorganisation_idをパーティションキーとして持つカテゴリを維持するために、別のDynamodbテーブルが使用されます。 カテゴリは組織によって所有されるため、特定の組織に所属するユーザーは、そのカテゴリでのみ操作を実行できます。今IAMポリシー条件のCognitoユーザプールカスタム属性Dynamodbファイングレインアクセス

、それは代わりに、サブ/ USER_IDのorganisation_idをとるように私はIAMポリシーを作成することができますどのように
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ポリシーでそんなことがあるものか?

答えて

1

これはできません。 IAMの役割では、任意のCognitoユーザープールからカスタム属性を識別できる必要があります。それは興味深い機能ですが、チームと議論する予定です。

しかし、代替として、あなたはCognitoアイデンティティと役割ベースのアクセス制御

http://docs.aws.amazon.com/cognito/latest/developerguide/role-based-access-control.html

+0

その上の任意の最新情報を見ることができますか?現在@danが必要としているところでは、それは可能ではないようです。 Cognitoグループとグループ固有の役割を経由する場合、ハードリミットは25です。カスタムアトリビュートとルールベースのロールアサインを経由すると、ソフトリミットは25になります。 両方のリミットでは、1000または10000の組織のいずれにもアプローチできません/グループ。 –