Как я могу получить доступ к AWS DynamoDB в качестве гостя?

Я использую aws-ampify и aws-sdk в Angular JS/Typescript. Я могу успешно получить доступ к своей AWS DynamoDB в качестве аутентифицированного пользователя.

Я также пытаюсь добавить гостевой пользовательский доступ к определенной таблице в Dynamo, но я пытаюсь понять, как получить ссылку на DynamoDB без каких-либо учетных данных.

Мой код выглядит так на данный момент

   getDocumentClient() {
    return Auth.currentCredentials()
     .then(credentials => new AWS.DynamoDB.DocumentClient({ credentials: credentials }))
     .catch(err => logger.debug('error getting document client', err));

Как бы я сделал нечто подобное, чтобы получить доступ к DynamoDB в качестве гостя, не прошедшего проверку подлинности?

ура

подветренный

1 ответ

Попробуй makeUnauthenticatedRequest.

Вот пример с S3 - я показал это, потому что я знаю, что вы можете делать запросы к S3 из AWS SDK как не прошедший проверку подлинности пользователь. Я предполагаю, что это также будет работать для DynamoDB, но не проверял это.

var s3 = new AWS.S3();

var params = {
    Bucket: 'mybucket'
};

s3.makeUnauthenticatedRequest('listObjects', params, callback);

Более стратегическим подходом будут Amazon Cognito Identity Pools, которые поддерживают неаутентифицированные / гостевые идентификаторы. Cognito продает удостоверение и учетные данные AWS, и вы можете настроить роль IAM, разрешающую доступ для чтения DynamoDB для неаутентифицированных типов удостоверений.

Я думаю, что вы можете сослаться на то, что упоминается в блоге ниже.

https://aws.amazon.com/blogs/compute/using-amazon-api-gateway-as-a-proxy-for-dynamodb/

Основная идея заключается в использовании API Gateway в качестве прокси для DynamoDB API. Разрешение на доступ к DynamoDB предоставляется API-шлюзу через роль выполнения, а API-шлюз настроен для открытого доступа. При этом поток будет следующим:

Web Browser <----- HTTPS -----> API Gateway <----- AWS Service Proxy integration -----> DynamoDB
Другие вопросы по тегам