问题标签 [aws-regions]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
node.js - 如何在 AWS js SDK 中配置区域?
我的问题
我正在编写一个简单的 js 函数,它从 AWS CloudWatch Logs 读取一些信息。
按照在 Node.js AWS SDK和AWS nodejs SDK 文档中配置区域的答案,我想出了以下内容:
代码
输出和错误
环境
代码在本地运行node v8.1.2
。
我的问题
如何在 AWS js 开发工具包中正确配置区域?
附录
在github上打开了一个问题并得到了一些回复。
aws-lambda - 无法从 aws lambda 函数发送全球短信
我正在尝试从我在 AP-South-1(即孟买)地区托管的 AWS Lambda 函数发送 OTP。为此,我正在使用 SNS 的全球短信功能。由于“AP-South-1”地区不支持全球短信功能,我将 SNSClient 的地区端点发送为“APNortheast1”(即东京)地区,因为它支持全球短信。
现在,我已经赋予了我的 lambda 函数管理员权限(通过将角色与管理员策略附加)。但是,它似乎仍然不起作用(没有将消息传递到我的手机)。执行该函数时我没有遇到任何异常,并且我还获得了该 SMS 的“TransactionID”。在 SNS 控制台中,SMS 显示为失败。所以,我已经为它启用了 cloudwatch 日志。我得到的日志如下 -
现在,讽刺的是——这实际上是一个新帐户,我正在从另一个帐户(手动)迁移资源。在这个较旧的帐户中,我的设置完全相同,但它似乎可以正确地将消息传递到我的手机。供您参考,我的 Lambda 函数是用 .net 核心编写的,我正在尝试将 SMS 发送到印度手机号码。
amazon-s3 - 使用 CloudFront 在 GovCloud 中安全地提供 S3 数据
CloudFront 可以提供托管在公共区域中的 S3 数据,这些数据由原始访问身份保护。但是,这不适用于 GovCloud 中的 S3。该文档提到了一些关于限制对 CloudFront IP 的访问的内容,但这并不安全,因为任何人都可以启动 CF 分发。该文档还提到让 CloudFront 向请求添加自定义标头,以便源可以丢弃没有这些标头的请求,但我没有看到 S3 这样做的方法。
我错过了什么,还是现在不可能?
谢谢!
amazon-web-services - 区域之间的 AWS 加密 SDK 标头不匹配
我使用Amazon Encryption SDK在将数据存储到数据库之前对其进行加密。我也在使用Amazon KMS。作为加密过程的一部分,SDK 将用于加密的数据密钥的密钥提供者 ID存储在生成的密文头中。
AWS 加密 SDK 中的加密操作返回包含加密数据(密文)和所有加密数据密钥的单个数据结构或消息。要理解这种数据结构,或者构建读取和写入它的库,您需要了解消息格式。
消息格式至少由两部分组成:标头和正文。在某些情况下,消息格式由第三部分组成,即页脚。
Key Provider ID 值包含 AWS KMS 客户主密钥 (CMK) 的 Amazon 资源名称 (ARN)。
这就是问题所在。现在我有两个不同的 KMS 区域可用于加密。每个密钥提供者 ID 都具有完全相同的加密数据密钥值。所以任何一个密钥都可以用来解密数据。但是,问题在于密文标头。假设我有 KMS1 和 KMS2。如果我使用 KMS1 提供的密钥对数据进行加密,那么密钥提供者 ID 将存储在密文头中。如果我尝试使用 KMS2 解密数据,即使加密数据密钥相同,解密也会失败,因为标头不包含 KMS2 的密钥提供程序。它具有 KMS1 的密钥提供程序 ID。它失败并出现此错误:
它无法验证标头完整性并失败。这不好,因为我计划拥有多个 KMS,以防一个区域的 KMS 出现故障。我们在所有地区复制我们的数据,并且我们认为只要加密的数据密钥匹配,我们就可以使用来自这些地区的任何 KMS 进行解密。但是,看起来我只能使用加密数据的原始 KMS?如果我们只能依赖一个 KMS,我们究竟如何将其扩展到多个区域?
我可以在调用中包含所有区域主密钥来加密数据。这样,标题将始终匹配,尽管它不会反映它实际使用的 KMS。但是,这也是不可扩展的,因为我们将来可以添加/删除区域,这会导致所有已经加密的数据出现问题。
我错过了什么吗?我已经考虑过这一点,我想在不破坏 SDK/加密提供的任何完整性检查的情况下解决这个问题。
更新:
基于@jarmod 的评论
使用别名也不起作用,因为我们只能将别名与区域中的键相关联,并且它存储了它所指向的键 ARN 的解析名称。
我正在阅读这份文件,上面写着
此外,信封加密可以帮助您设计灾难恢复应用程序。您可以在区域之间按原样移动加密数据,并且只需使用特定于区域的 CMK 重新加密数据密钥
但是,这根本不准确,因为重新加密的数据密钥的 Key Provider ID 将完全不同,因此加密 SDK 在不同的区域将无法解密!
amazon-web-services - 从 SQS url 获取 AWS 区域可以吗?
我有一个包含区域的 SQS URL。我正在使用官方 Go SDK 对此 SQS 执行操作,这需要 AWS 区域来初始化会话。目前,我已经编写了一个实用程序函数来解析 URL 并返回 AWS 区域。
示例网址:https://sqs.us-east-1.amazonaws.com/774557911234/my_sqs_name
示例初始化代码:
从 URL 获取区域的示例函数
只是想知道这是否是正确的方法。
在任何情况下,SQS URL 在 URL 中的区域与 SQS 所在的区域不同吗?
我应该在服务中再添加一个环境变量吗?
amazon-web-services - 每个用户的可用区映射
我在一本书中读到“每个 AWS 账户都有独立映射的可用区,不同账户之间可能会有所不同”。据我所知,每个区域都有其明确定义的可用区。那么,AZ 是如何因用户而异的呢?
javascript - AWS rekognition 和 s3 存储桶区域
尝试使用 aws rekognition 访问我的 s3 存储桶时出现以下错误:
我的预感是它与该地区有关。
这是代码:
这是我的配置文件:
我已经给了我能想到的用户几乎所有的权限。此外,s3 存储桶的区域似乎位于可以使用 rekognition 的地方。我能做些什么?
amazon-web-services - 将 AWS Lambda 部署到多个区域?
快一个。
当您在多个区域部署一个 lambda 时会是什么样子?它只是具有不同名称、不同 ARN 等的相同代码的 2 个单独副本吗?
AWS 是否将它们视为不相关的 lambda?
或者它是否知道它们是部署在不同地区的同一个东西?
amazon-web-services - 操作“部署”中的 Terraform CodePipeline ActionType 不可用
尝试使用 Terraform 创建 AWS CodePipeline。在应用资源 aws_codepipeline > 部署操作时,出现以下错误:
地形配置是:
AWS 区域是“ap-south-1”。
有什么关于这里有什么问题的指针吗?
amazon-web-services - 是否值得在不同的 AWS 位置发布不同的站点语言?
我无法在不同位置的 AWS 存储桶之间分隔专用于不同区域/语言的页面(页面不在单独的子域上,例如en .example.com 和de .example.com,相反,页面的结构为 example.com/ en和example.com/de )
那么,是否值得将德语子页面放置在法兰克福 AWS 区域的不同存储桶中,并将所有请求重定向到 example.com/de (位于伦敦主要区域的 example.com 域下)到单独的存储桶?与位置相关的 ping 是否会减少重定向调用导致的超重 ping 增加?
与伦敦的主要地区相比,类似的问题也适用于东京、爱尔兰和巴黎地区。