问题标签 [aws-parameter-store]

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.

0 投票
1 回答
1313 浏览

amazon-web-services - Amazon ECS - 在 Docker 入口点上使用 IAM 角色时权限被拒绝

我正在寻找一种将机密/证书注入 Amazon ECS 容器的方法。就我而言,它是一个简单的 nginx 容器。

我一直在关注这篇文章,使用 AWS Parameter Store: https ://aws.amazon.com/blogs/compute/managing-secrets-for-amazon-ecs-applications-using-parameter-store-and-iam-roles -for-tasks/

这是基本要点:

  1. 在我的 Dockerfile 上,我在entrypoint上附加了一个脚本,该脚本安装 AWS 客户端并从 AWS 参数存储中获取密钥。

Dockerfile

获取.sh

  1. 任务定义假定一个 IAM 角色可以访问所需的服务(kms + 参数存储)。我可以验证这是否有效,因为如果我 ssh 到服务器并在容器上运行脚本,我就能够从 Parameter Store 获取密钥。
  1. 当 ECS 运行这个任务时,它应该点击从参数存储中获取密钥并保存它们的入口点。

我可以通过 docker exec 手动运行来获取正在运行的任务的密钥,但是在启动任务时我无法获取它们(特别是当我将脚本附加到入口点上时,如上面的代码所示)。

ECS 任务是否有权访问入口点的 IAM 角色?它何时实际承担 IAM 角色?

0 投票
1 回答
1494 浏览

amazon-web-services - 如何在 Elastic Beanstalk 环境变量中使用 AWS 参数存储变量?

我有一个连接到 AWS 上的 PostgreSQL 的 Spring Boot 应用程序。我想在 AWS 参数存储中将数据库配置(如 DB URL、用户名和密码)存储为安全字符串。

我想像我们设置的那样从环境变量中的 AWS Parameter store 访问这些参数:

/dev/databases/postgresql/awsdbinstance/passwordAWS 参数存储的名称在哪里。

我还向 EC2 实例添加了一个 IAM 策略以进行 SSMReadOnly 访问,但仍然无法访问这些值。我做错了什么,我该如何做到这一点?

另外,实现这一目标的标准方法是什么?

我不想在 YAML 文件中添加一个试图从 AWS 参数存储中检索值的属性,而是我认为如果该属性是通过 Elastic Beanstalk 环境变量本身注入的,它会更好。

0 投票
0 回答
386 浏览

ruby-on-rails - 如何在弹性 beantalk 应用程序中访问不同环境(暂存、生产)的 aws 系统管理器参数存储

我正在努力将 Rails 应用程序从其当前的 PaaS 迁移到 aws elastic beanstalk。一切都很顺利,除了弹性 beantalk 允许配置的键和值组合最大 4096 字节。由于我的应用程序有许多第三方 api 凭据,因此我的配置大于 4096 字节。

我在 AWS 中发现了一项出色的服务,用于存储名为 AWS System Manager Parameter Store 的秘密凭证,以克服 4096 字节的限制。

我的目标是存储我的凭据,然后将它们重新加载到我的应用程序的 ENV 变量中,但是我发现了以下问题:

  • 如何能够分离不同环境的配置值,在我的情况下,我将在参数存储中进行暂存和生产?我需要为每个环境复制密钥吗?组织这些键以便能够以编程方式轻松加载到 ENV var 中的做法是什么?

  • 如何能够相应地访问当前环境中的参数存储?即,当容器在生产环境中部署时,生产环境中的参数存储值应加载 ENV var,而不是暂存环境中的值。

  • 允许 ElasticBeanstalk 实例通过 AWS IAM 访问 AWS 系统管理器参数存储的最佳实践是什么?

我在 AWS CLI 中尝试了一些命令来在本地读写,它运行良好,例如像这样

我需要人们做的一些标准程序或实践来解决上述所有问题。

分步指南和示例将非常有用。

0 投票
3 回答
10551 浏览

amazon-web-services - 在 CloudFormation 模板中引用 AWS Parameter Store 的安全字符串

坚持使用 AWS Parameter Store 中的 SecureString。我试图将数据库密码称为:

这会引发错误:

调用 CreateStack 操作时发生错误(ValidationError):模板格式错误:无法识别的参数类型:SecureString

但是,如果我将此参数称为String而不是SecureString它会引发不同的错误:

调用 CreateStack 操作时发生错误 (ValidationError):模板引用的参数 [/environment/default/database_password] 具有 CloudFormation 不支持的类型。

我确实尝试过使用'{{resolve:ssm-secure:parameter-name:version}}'它,它适用于数据库配置:

但是,我使用的是 AWS Fargate docker 容器,我将这些值作为环境变量提供:

这会引发错误:

调用 CreateStack 操作时发生错误 (ValidationError):[AWS::ECS::TaskDefinition/Properties/ContainerDefinitions/Environment] 中不支持 SSM 安全引用

无法在我的实现中使用安全字符串。这个问题有什么解决方法吗?SecureStringAWS去年宣布支持,但找不到文档。我发现的只是使用resolve它只在某些情况下有效。

参考:

1

2

0 投票
1 回答
2969 浏览

jestjs - aws-sdk-mock 是否支持模拟 AWS SSM(参数存储)?

我正在尝试使用 aws-sdk-mock 和下面的代码来模拟 AWS SSM,但无法正常工作。不抛出错误,getParametersByPath调用时从实际存储中获取值。

我查看了 aws-sdk-mock 文档,但似乎没有模拟 ssm 的示例,它是否支持。

0 投票
1 回答
3713 浏览

amazon-elastic-beanstalk - 在 AWS Elastic Beanstalk 中使用 SSM 参数存储

我正在使用 AWS Elastic beanstalk 并想为不同的环境配置不同的 ENV var。我发现的唯一方法是使用 ebextensions,但如果我将同一个数据包部署到多个环境,则无法覆盖在 ebextension 中设置的 ENVIRONMENT 变量。听说过 SSM 参数存储,但找不到使用 Elastic Beanstalk 的方法。

我发现 SSM 参数存储可以为 EC2 实例执行此操作。我不想每次更新一个环境变量时都重新启动 EC2 实例。还考虑编写一个脚本,该脚本从 SSM 获取值并更新 ebextentsions 中的环境变量。但这似乎只是一个 hack 而不是正确的解决方案,并且需要检查它可能失败的场景

0 投票
1 回答
228 浏览

terraform - Terraform 无法使用 Parameter Store 中的数据创建策略

我在 Parameter Store 中有一个以字符串形式存储的 IP 地址的逗号分隔列表。在 Terraform 中,我试图将它们插入到 S3 存储桶策略的语句中。

参数存储中的值:10.7.60.210/32, 10.3.113.172/32, 10.9.128.86/32, 10.7.33.40/29, 10.1.168.30/32

当我运行时,terraform plan我收到以下信息:

aws_s3_bucket_policy.internal-tooling:“策略”包含无效的 JSON:数组元素后的无效字符“1”

0 投票
0 回答
62 浏览

amazon-web-services - 在 CodeDeploy 中替换 EBS 环境变量

我一直在使用 Elastic Beanstalk 来部署基于 .Net 的 Web API 服务。我正在使用环境变量来推送设置等SecretKey AccessKey DBPassword。现在,我们正在从 EBS 转移到 CodeDeploy,我们无法选择将这些设置推送到web.config我的应用程序文件中。经过一番探索,我发现我们可以利用 AWS 中的 Parameter Store 来存储 DBPassword 等。但是,为了从 Parameter Store 中读取数据,我们需要SecretKeyAccessKey。那么在 CodeDeploy 中实现它的最佳方法是什么?

0 投票
1 回答
595 浏览

amazon-web-services - 加载参数时提高性能

我正在使用 AWS Parameter Store 来保存要由我的 Lambda 函数(环境变量)使用的参数,实际上是 4 个参数。但是我在加载它们时观察到一些性能问题,仅加载一个参数需要 0.2 到 0.6 秒,这对于我的网络应用程序来说是很多时间。

我通过运行这个命令来测量时间

时间 aws ssm 获取参数 --name "sample_parameter"

我希望加载参数值的时间更少,因为我需要获取 4 个参数。所以这是我的问题......将参数加载为json文本是一个好习惯吗?所以我可以将所有这 4 个参数放在一个 json 对象中。调用 get 参数函数时,有什么事情可以提高性能吗?

谢谢

0 投票
0 回答
42 浏览

amazon-web-services - 如何将参数存储键添加为子列表

我有 YAML 文件,需要将其添加为 aws 云中的参数存储,如下所示

我已将其添加为参数键名:

但它会导致此消息

只允许混合使用字母、数字和以下 3 个符号 .-_。

在 aws 上

如何将此 YAML 文件表示为参数存储中的键?