如何以访客用户身份访问AWS DynamoDB?

时间:2018-06-15 17:15:06

标签: amazon-web-services amazon-dynamodb aws-amplify

我在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?

干杯

2 个答案:

答案 0 :(得分:1)

尝试makeUnauthenticatedRequest

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

CONDITION : without directly using the designation of Peter in the WHERE CLAUSE.

更具战略性的方法是支持未经身份验证/来宾身份的Amazon Cognito Identity Pools。 Cognito会出现身份和AWS凭证,您可以配置IAM角色,允许对未经身份验证的身份类型进行DynamoDB读取访问。

答案 1 :(得分:0)

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

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

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

Web Browser <----- HTTPS -----> API Gateway <----- AWS Service Proxy integration -----> DynamoDB