Доступ к корзине S3 после входа в Cognito из другой учетной записи - PullRequest
0 голосов
/ 08 февраля 2019

У меня есть две учетные записи AWS.Учетная запись A имеет пул удостоверений Cognito, настроенный с ролями для Аутентифицированной и Неаутентифицированной.

Политика надежных отношений для Аутентифицированной роли выглядит следующим образом:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "cognito-identity.amazonaws.com" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "cognito-identity.amazonaws.com:aud": "<identity_pool_id>" }, "ForAnyValue:StringLike": { "cognito-identity.amazonaws.com:amr": "authenticated" } } } ] }

Существуеттакже политика для Аутентифицированной роли, которая выглядит следующим образом:

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::users-pictures/public/*", "arn:aws:s3:::users-pictures/protected/${cognito-identity.amazonaws.com:sub}/*", "arn:aws:s3:::users-pictures/private/${cognito-identity.amazonaws.com:sub}/*" ], "Effect": "Allow" }, { "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::users-pictures/uploads/*" ], "Effect": "Allow" }, { "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::users-pictures/protected/*" ], "Effect": "Allow" }, { "Condition": { "StringLike": { "s3:prefix": [ "public/", "public/*", "protected/", "protected/*", "private/${cognito-identity.amazonaws.com:sub}/", "private/${cognito-identity.amazonaws.com:sub}/*" ] } }, "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::users-pictures" ], "Effect": "Allow" } ] }

На учетной записи BI есть приложение, которое должно проходить проверку подлинности на Cognito из учетной записи A, но ему необходим доступ к корзине для учетной записи B.

Это приложение использует хранилище из Amplify.

Структура корзины должна выглядеть примерно так:

users-pictures/private/${cognito-identity.amazonaws.com:sub}/*

Когда Amplify аутентифицируется на учетной записи Aи пытается получить доступ к этому сегменту учетной записи B, он получает отказано в доступе (403).

Возможно, ему не хватает какой-либо конфигурации для учетной записи A и / или учетной записи B.

Не могли бы вы мне помочь,пожалуйста

...