AWS SSM Run Command 的环境变量

1 environment-variables amazon-web-services aws-ssm

我将 AWS SSM Run Command 与 AWS-RunShellScript 文档结合使用,在 AWS Linux 1 实例上运行脚本。该脚本的一部分包括使用环境变量。当我自己运行脚本时,一切都很好。但是当我用SSM运行脚本时,它看不到环境变量。该变量需要传递给 Python 脚本。我最初尝试 os.environ['VARIABLE'] 没有效果。

我知道AWS SSM使用root权限,因此我在root ~/.bashrc文件中放置了一行导出变量的行,但它仍然看不到该变量。我自己运行root用户就可以看到。AWS SSM 是否无法使用环境变量,或者我没有正确导出它?如果不可能,我将尝试使用 AWS KMS 来存储我的变量。

~/.bashrc

export VARIABLE="VALUE"
Run Code Online (Sandbox Code Playgroud)

脚本文件

"$VARIABLE"
Run Code Online (Sandbox Code Playgroud)

安全性很重要,因此我不想只将变量存储在脚本中。

Moe*_*Moe 9

SSM 不会打开实际的 SSH 会话,因此传递环境变量不起作用。必须有一个运行在机器上的守护进程来接收并处理您的请求。这是一个非常基本的产品:它不支持 SSH 附带的任何标准功能,例如 SCP、端口转发、隧道、环境变量传递等。将所需值传递给脚本的另一种方法是将其存储在 AWS Systems Manager Parameter Store中,并让您的脚本从存储中提取变量。
您需要更新实例角色权限,才能访问ssm:GetParameters您运行的脚本来访问存储的值。