失去的连接 - AWS VPC 和 DynamoDB 的故事

概述

曾几何时,在亚马逊网络服务的云王国中,存在着一个强大的虚拟私有云 (VPC),由一个技术娴熟的无服务器战士 AWS Lambda 守护。Lambda 以惊人的速度和效率执行任务而闻名,这要归功于它能够利用无服务器计算的魔力。Lambda 最重要的任务之一是连接到神秘的数据库 Amazon DynamoDB,其中需要存储有价值的信息。AWS Lambda 位于 VPC 的安全墙内,可以安然无恙地生存,免受外部威胁。然而,在一个决定性的日子里,出现了一个不祥的问题。每当 AWS Lambda 尝试访问 Amazon DynamoDB 时,它最终都会失败。云之国传奇被要求调查这场灾难的原因。他们怀疑可能是恶意的网络配置错误在作怪,导致 VPC 的大门始终对 Amazon DynamoDB 紧闭。他们中最聪明的人决定踏上寻找问题根源的旅程

任务 1:神秘之门

背景

名为PutItemLambdaFunction的 lambda 函数旨在在MyDynamoDBTable中执行PutItem操作。但是,当从控制台执行时,它会遇到失败或超时。要解决此问题,建议手动触发 AWS Lambda 函数并验证它是否可以成功将数据写入MyDynamoDBTable

你的任务

您的目标是建立从PutItemLambdaFunctionMyDynamoDBTable 的连接并将项目写入其中。此任务涉及创建网络资源,以便从私有子网安全连接到 Amazon DynamoDB。MyDynamoDBTable位于 reinvent23-vpc 上并****使用reinvent23 -private-subnet

入门

存货

您的 AWS 账户已配置以下资源:

线索:

创建连接dynamodb的终端节点(创建时记得勾选静态节点

任务 2:提升守门人

背景

恭喜!Guardian 非常高兴您成功创建了适当的网络资源,现在允许建立与MyDynamoDBTable的私有连接。但是,在****PutItemLambdaFunction可以将项目写入MyDynamoDBTable之前,还有最后一个障碍需要解决。仍然缺少与PutItemLambdaFunction密切相关的东西

你的任务

您的任务是识别并修复实体,以便PutItemLambdaFunction可以连接到正确的[aws-managed-prefix-lists](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-aws-managed-prefix-lists.html)

笔记!!

入门

存货

您的 AWS 账户已配置以下资源:

任务验证

*您需要执行**PutItemLambdaFunction 。一旦****MyDynamoDBTable**有 Item(item_1), 任务将自动验证。*

线索 1: 使用 VPC 终端节点策略限制对 DynamoDB 表的访问

当 AWS Lambda Function 在 VPC 内运行时,它还会链接到一个安全组。该安全组必须配置适当的出站规则才能允许目标服务进行通信。托管前缀列表是一个或者多个 CIDR 块的集合,使用前缀列表可以简化安全组的设置和管理。

线索 2: 解决挑战的分步说明

要解决 TASK 2,请按照说明进行操作。

更新安全组规则
要更新 reinvent-lambda-sg 安全组规则,首先我们需要知道 DynamoDB 前缀列表 ID 是什么。

使用控制台查看 AWS 管理的前缀列表:

  1. 通过 https://console.aws.amazon.com/vpc/ 打开亚马逊 VPC 控制台。

现在让我们更新安全组规则:

  1. 打开 Amazon EC2 控制台,网址为 https://console.aws.amazon.com/ec2/,在导航窗格中,选择 reinvent-lambda-sg 安全组。
  2. 选择操作,编辑出站规则,更新出站流量的规则。
  3. 单击 “添加规则”:
    • 类型:Custom TCP
    • 端口范围:443
    • 目标:Custom
  4. 然后在下一个字段框中,选择你在上一步中记下的 Prefix list ID。
  5. 选择 “保存规则”。

完成后,请前往 Lambda 控制台执行 putItemLambdaFunction


如果你有其他问题或需要进一步的帮助,请告诉我。