1

我在 Angular JS/Typescript 中使用 aws-amplify 和 aws-sdk。我可以作为经过身份验证的用户成功访问我的 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?

干杯

4

2 回答 2

1

尝试makeUnauthenticatedRequest

这是 S3 的示例 - 我展示了这一点,因为我知道您可以作为未经身份验证的用户从 AWS 开发工具包向 S3 发出请求。我假设这也适用于 DynamoDB,但尚未对其进行测试。

var s3 = new AWS.S3();

var params = {
    Bucket: 'mybucket'
};

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

更具战略意义的方法是支持未经身份验证/访客身份的 Amazon Cognito 身份池。Cognito 提供身份和 AWS 凭证,您可以配置 IAM 角色,允许 DynamoDB 对未经身份验证的身份类型进行读取访问。

于 2018-06-15T18:02:55.273 回答
0

我认为您可以参考下面的博客文章中提到的内容。

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

基本思想是使用 API Gateway 作为 DynamoDB API 的代理。通过执行角色授予 API Gateway 访问 DynamoDB 的权限,并将 API Gateway 配置为向公众开放。在这样做时,流程如下:

Web Browser <----- HTTPS -----> API Gateway <----- AWS Service Proxy integration -----> DynamoDB
于 2019-07-22T13:39:41.127 回答