Amazon dynamodb 在AWS中设置连接API网关和DynamoDB的策略和角色

Amazon dynamodb 在AWS中设置连接API网关和DynamoDB的策略和角色,amazon-dynamodb,aws-api-gateway,Amazon Dynamodb,Aws Api Gateway,我正在尝试将数据从AWS API网关流式传输到AWS中的DynamoDB(直接,不使用类似lambda的东西)。我已经查找了一些教程,例如[1]和[2],它们准确地描述了这个场景。所有这些都假定制定了正确的政策和角色。通常情况下,我会玩游戏和玩黑客游戏,直到我得到一个有效的概念证明,之后我会重新构建一个合适的模型,但是我想通过访问权限来确保我理解我在做什么。对于[2],我在[3]中还发现了一个堆栈溢出问题,该问题是由具有相同问题的人提出的,但不确定具体是如何解决的。我还查看了[4],其中描述了使

我正在尝试将数据从AWS API网关流式传输到AWS中的DynamoDB(直接,不使用类似lambda的东西)。我已经查找了一些教程,例如[1]和[2],它们准确地描述了这个场景。所有这些都假定制定了正确的政策和角色。通常情况下,我会玩游戏和玩黑客游戏,直到我得到一个有效的概念证明,之后我会重新构建一个合适的模型,但是我想通过访问权限来确保我理解我在做什么。对于[2],我在[3]中还发现了一个堆栈溢出问题,该问题是由具有相同问题的人提出的,但不确定具体是如何解决的。我还查看了[4],其中描述了使用Lambda的API网关

以下是我的猜测:

  • 创建允许从API网关调用的策略。
    “AmazonaPigatewayInvokeelLaccess”适合这个名字,但可能不适合 有必要+过多接触
  • 创建一个允许访问dynamoDB的策略。
    在这里,“amazondynamodfullaccess”甚至可能是合适的 虽然这可能是过度的(访问太多),而且可能只起作用 从管理控制台
  • 创建一个附加了这两个策略的角色。
    在这里,我遇到了一个麻烦,当我单击“创建角色”时 选择AWS服务,我找不到将使用的正确“服务” 这个角色“背后有我上面描述的政策”。对于 例如,单击dynamoDB时,我得到以下“用例”,它们似乎都与dynamoDB完全访问策略无关:
    • 亚马逊DynamoDB加速器(DAX)-DynamoDB访问
    • DynamoDB-全局表
    • DynamoDB加速器(DAX)-群集管理
我的主要问题是:如何设置正确的最小角色和策略集,以将AWS API网关连接到DynamoDB(读写),如[1]中所述

[1]
[2]
[3]

[4]

您需要做的是创建一个IAM服务角色,允许API网关承担此角色。您可以通过UI轻松地完成此操作。创建新角色时,默认情况下会选择“服务角色”,在“选择将使用此角色的服务”标题下,可以选择API网关

角色是可以由某个实体(在我们的示例中是API网关API资源)承担的权限容器。您的角色需要“权限”才能使用该角色。您可以通过向角色添加策略来添加此权限。下面将对此进行更深入的解释:

请务必阅读AWS服务角色部分。您说您需要“创建一个允许从API网关调用的策略”,但这是不正确的:您需要创建一个可以由API网关承担的角色

在您的情况下,您需要角色的特定DynamoDB权限。按照您提到的最小特权原则,您应该只为特定的DynamoDB表添加特定的操作。可在此处找到可能的权限列表:

假设您只希望API网关从特定表中获取项。您的策略可能如下所示:

{
    "Effect": "Allow",
    "Action": "dynamodb:GetItem",
    "Resource": "arn:aws:dynamodb:eu-west-1:[aws_account_id]:table/[table_name]"
}

希望这有帮助

ankana likhita sri priya最近的新教程包括从IAM(政策、角色等)的高细节/屏幕截图开始:

这基本上解决了我的答案。我仍然有一个问题,即我的策略在创建期间不会显示在正确的类别中。首先创建一个空角色,然后在创建后将策略分配给角色解决了这个问题,因为这会暴露一个不同的UI。谢谢