问题标签 [ssm]

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 投票
2 回答
608 浏览

amazon-web-services - aws 在 Yaml 中下载内容

尝试格式化我的 yaml 以下载 S3 存储桶中的脚本以在 SSM 中运行。

我尝试了许多不同的格式,但所有示例似乎都是 JSON 格式

失败并显示以下消息:

0 投票
1 回答
358 浏览

python - aws ssm create_activation api 因正则表达式错误而失败

我正在尝试使用 boto3 api 调用在 ssm 管理器上激活 AWS ec2 实例,但是它因正则表达式错误而失败。

问题已在https://github.com/aws/aws-sdk-js/issues/2748提出,但未找到合适的解决方案

回溯(最后一次调用):文件“”,第 1 行,在文件“/usr/local/lib/python2.7/dist-packages/botocore/client.py”中,第 320 行,在 _api_call return self._make_api_call( operation_name, kwargs) 文件“/usr/local/lib/python2.7/dist-packages/botocore/client.py”,第 623 行,在 _make_api_call 中引发 error_class(parsed_response, operation_name) botocore.exceptions.ClientError:发生错误( ValidationException) 调用 CreateActivation 操作时:检测到 1 个验证错误:值 'arn:aws:iam::xxxxxxxx:role/my-role-name' at 'iamRole' 未能满足约束:成员必须满足正则表达式模式:^[ \p{L}\p{N}+=,.@-_/]*$

虽然我已经复制了 IAM 角色 ARN。

如果有人对此有解决方案,我真的很感激..

0 投票
1 回答
567 浏览

python - 无法使用提供层参数的 ssm client.put_parameter()

当我尝试使用提供 Tier 参数的 SSM client.put_parameter() 时,出现以下错误:

参数验证失败:

输入中的未知参数:“Tier”,必须是 Name、Description、Value、Type、KeyId、Overwrite、AllowedPattern 之一

期望将参数与层和策略一起放置

0 投票
0 回答
683 浏览

windows - 创建 Windows AMI 时的部分 sysprep

tdlr; 我想使用“部分系统准备”创建一个 AMI,以便 SSM 在我启动与该 AMI 的原始实例类型不同的实例类型时可以连接,但希望保持其他所有内容相同。它只需要更新元数据/kms 路线。

我最近遇到了一个问题,如果我部署的实例类型不是最初创建 AMI 的实例类型,则无法访问 SSM。原来这是因为不同的实例大小会被启动到不同的可用区,并且连接到 SSM 的路由被保存到指向原始实例类型 AMI 的可用区的映像中。

对此的解决方案是在创建 AMI 之前使用 sysprep 关闭。但是,这引发了其他问题: 1- 从 sysprep 的 AMI 启动系统需要 2 分钟以上才能使 SSM 可用,而不是在不使用 sysprep 时立即可用。但更重要的是:2-我的启动脚本的一部分将 exe 下载到桌面并使用 SSM RunPowershellScript 安装它。这部分现在失败了,我相信是因为在我 RDP 进入新实例之前,不会创建桌面等。我已经测试了 15 分钟的睡眠,结果相同。在我 rdp'd 进入实例后,这部分代码运行良好。

我有: 1. 当 AMI 未进行系统准备时,确认 exe 安装程序运行良好。但是,在这种模式下,我只能使用为其创建原始 AMI 的实例类型。

  1. 使用 sysprep 时,在下载/运行安装程序之前尝试了 15 分钟睡眠。这没有用。

  2. 确认在 sysprep'd 映像上,如果我已 rdp'd 进入实例以初始化桌面等,安装程序将下载并运行。

这与页面底部描述的元数据/KMS 路由有关:https ://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2launch.html#ec2launch-inittasks

如果在不使用 sysprep 的情况下创建 AMI,则如果实例将该 AMI 启动到不同的可用区,则 SSM 将无法访问,并且日志中会出现以下错误:

2019-08-28 22:39:12 错误 [func1 @ coremanager.go.245] [instanceID=i-0d6c57bbfe2db46af] 尝试启动核心模块时发生错误。插件名称:启动处理器。错误:启动处理器发生内部错误:运行时错误:无效的内存地址或 nil 指针取消引用 2019-08-28 22:39:27 错误 [SetWebSocket @ controlchannel.go.89] [MessageGatewayService] 无法获取控制通道令牌,错误: CreateControlChannel 失败并出现错误:createControlChannel 请求失败:来自服务未授权请求的意外响应。

预期的行为是能够从 AMI 启动实例,并预先配置所有内容(包括桌面等,在使用 sysprep 时需要完全重新初始化),并让新实例更新元数据/kms 路由,以便可以访问 SSM。

0 投票
1 回答
936 浏览

docker - `aws ssm start-session` 在 docker 容器内部不起作用

我有一个基于https://github.com/bopen/docker-ubuntu-pyenv/blob/master/Dockerfile的 docker 容器 ...我正在安装 aws-cli 并希望使用 aws ssm 访问远程实例。

我尝试使用docker-composeAND启动容器docker up-- 在这两种情况下,我都安装了我的AWS_PROFILE,并且可以访问所有其他 aws-cli 命令(我使用实例进行了测试,ec2 describe甚至aws ssm send-command对实例进行了操作!)

但是,当我aws ssm start-session --target $instance_id从容器中进行操作时,我什么也得不到。我能够从我的本地 shell 运行 aws ssm start-session 到这个实例,所以我知道 ssm 配置正确。

用标志运行它--debug会给我与我在本地运行它时完全相同的输出,Starting session with SessionId:显然减去部分。

这是 aws-cli 问题吗?还是一些奇怪的容器标准输出?请帮忙!

[交叉张贴在这里https://github.com/aws/aws-cli/issues/4465]

0 投票
0 回答
50 浏览

amazon-web-services - 绝对初学者在哪里可以学习将 CloudWatch 警报串到 Lambda,然后到 SSM 中的 AWS-RunRemoteScript?

我正在使用旧的 Adob​​e ColdFusion 堆栈(计划使用更现代的东西重新开发),我们遇到了一个问题,即 CPU 偶尔会出现峰值,我们需要在 Windows EC2 主机上重新启动 ColdFusion 和 IIS。

我有一些 CloudWatch 警报,它们触发了我发现并适用于发送 Slack 通知的 lambda 函数。如果我在附近,或者开发人员(我非常喜欢操作,但随着时间的推移试图了解更多开发内容),我们中的一个人将跳上服务器并重新启动服务,收集日志,然后开发人员可以使用它来尝试缩小它发生的原因。

我想要的是另一个警报,它可能在第一个警报后 15 分钟触发,以调用 SSM 中的 AWS-RunRemoteScript 文档,该文档运行存储在 S3 中的 powershell 脚本,它只是以正确的顺序停止和启动服务(重启不会t 工作 - 我发现我们需要停止 CF,停止 IIS,然后按该顺序将它们恢复)。

我已经将 Run Command 与 RunRemoteScript 一起使用,它很有效。我真正苦苦挣扎的是如何使 lambda 函数调用 SSM 并让它为我运行自动化。我搜索了高低,但我发现的少数资源对于我对编程的极其有限的掌握来说太复杂了。

请有人可以通过向我展示或指向一个资源来帮助我,该资源可以引导我创建一个 Lambda 脚本(最好是在 Python 中,因为我正在积极尝试学习它)来调用 SSM,并在其中调用 AWS 的 RunCommand- RunRemoteScript,如何插入参数(脚本位置等)并使其工作?

0 投票
0 回答
433 浏览

python - 将 SSL 客户端证书和密钥内容直接传递给 python 请求库,而不是作为文件传递

我目前在我的代码中使用 SSL 客户端证书。我从 AWS SSM 读取证书,然后我必须将它们写入某个临时文件并将该文件传递给请求库。

我试图找到一种方法来避免将我的 SSL 密钥和证书写入本地文件。如果有人可以在这方面提供帮助,我将不胜感激。所以最终我想要这样的东西。

0 投票
1 回答
1270 浏览

amazon-web-services - 如果尚未创建新的 SSM 参数,如何创建 AWS Cloud Formation 条件?

任何人都在 Cloudformation 模板中使用了 SSM 参数存储参数“如果之前没有创建它,则创建或不执行任何操作”的条件,例如 Cloudformation 中的条件?

我已经尝试了很多方法,但没有运气。也搜索它,但没有真正的工作。

我在真正的 CF 模板之外尝试过的最简单的方法是这样,但不起作用。AWS Cloudformation 部分没有详细的文档。

0 投票
0 回答
130 浏览

amazon-web-services - AWS SSM、Cognito 和 IAM 的问题

我遇到了一个问题,即经过 Cognito 身份验证的用户似乎具有与 SSM 交互的正确权限,但对 SSM 的所有调用都被拒绝。这是我的政策的样子:

认知角色

当然,在生产环境中,我们不会有这样的开放权限,当然也不会附加管理员策略,但这是为了测试并指出我们真的无法在这里进行身份验证。

我应该补充一点,我们可以使用 tha 策略毫无问题地访问我们的 dynamodb 资源,这只是 SSM 给我们带来了麻烦。我们收到与此类似的错误消息:

AccessDeniedException:用户:arn:aws:sts::ACCOUNTID:assumed-role/COGNITOROLE 无权执行:ssm:GetParametersByPath on resource:arn:aws:ssm:us-west-2:ACCOUNTID:parameter/

我已经替换了帐号和角色名称。有谁知道我做错了什么?提前致谢。

0 投票
1 回答
5091 浏览

python - AWS 承担的角色无法与 boto3 一起按预期工作

我想使用 aws SSM 通过假设具有以下策略定义的 IAM 角色 (iam_ssm_role) 对 ec2 实例 (i-0691847a77) 执行 ssm:DescribeInstanceInformation。

两个 IAM 角色都在同一个 aws 帐户上,并且 iam_base_role arn 已添加为 iam_ssm_role 中的可信策略。

我在具有 IAM 角色 (iam_base_role) 的 ec2 实例上运行以下代码

我收到拒绝访问错误,假定的角色显示为“iam_ssm_role”,但看起来 SSM 正在使用 iam_base_role 而不是 iam_ssm_role