我创建了一个 CloudFormation 模板,该模板成功创建了 IAM 用户和 AccessKey,并将该 AccessKey 分配给 IAM 用户。现在,我通过在OutputsCloudFormation 模板部分中输出 AccessKey 的秘密来获取它。
我想知道是否有更安全的方法来创建 AccessKey 并获取其相应的秘密,而无需在该Outputs部分以纯文本形式吐出它。
我对此有点困惑,因为 AWS 没有太多关于执行此操作的信息,而且它所提供的少量文档直接相互矛盾。这里, AWS 建议执行我上面描述的“检索密钥的一种方法是将其放入输出值”。这似乎是一个安全问题,并且已被另一个 AWS 文档证实,此处显示“我们强烈建议您不要使用此部分输出敏感信息,例如密码或机密”。
我是否误解了他们的文档或者这是直接矛盾?我看到一条 S/O 评论Here建议使用 AWS Secrets Manager,但我无法弄清楚如何将 AccessKey 密钥放入 Secrets Manager,在 Secrets Manager 中可以通过 boto3 之类的工具更安全地存储和获取它。任何这样的例子都会非常有帮助。我的 CloudFormation 模板如下供参考。
{
"Description": "My CloudFormation Template",
"Outputs": {
"UserAccessKeyId": {
"Description": "The value for the User's access key id.",
"Value": {
"Ref": "UserAccessKey"
}
},
"UserSecretKey": {
"Description": "The value for the …Run Code Online (Sandbox Code Playgroud) 我发现了许多关于如何在C++中生成1到10之间的随机数的帖子,但是当包含负数时,我很难找到一种方法.我试图获得在[-1,1]范围内生成的随机数,但我找不到包含底片的好例子.
我最近开始学习 JS 承诺,以便我可以与 Vimeo 的视频播放器 API 交互,但它们让我有点困惑。我来自一个非常同步/顺序的背景(很多 C++),所以有时我很难完全理解 JS 的异步特性。
我正在尝试调用 Vimeo 的 API 函数(如下)来获取视频的当前播放时间
`player.getCurrentTime().then(function(seconds) {
//seconds is what I am looking to get
})`
Run Code Online (Sandbox Code Playgroud)
此外,我将 Youtube 的 API(如下)用于类似目的
player.getCurrentTime()
Run Code Online (Sandbox Code Playgroud)
现在混乱来了。Vimeo 使用承诺,据我所知 youtube 没有。因此,当我执行以下操作时,我没有任何问题,一切对我来说都有意义。
someFunction() {
var time = player.getCurrentTime();
return time;
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我对 Vimeo 的 API 做同样的事情,我会遇到在我的 return 语句之前没有返回的承诺问题,并且我会得到一个未定义的返回结果。我发现解决此问题的唯一方法是将其余代码移到 Promise 中。但是,我的网络应用程序将与 youtube 和 vimeo 兼容,因此我经常遇到必须复制大块代码的问题,如下所示。
if (playerType == "youtube") {
time = player.getCurrentTime();
//large chunck of code relying on the time returned
} else if (playerType == "vimeo") …Run Code Online (Sandbox Code Playgroud)