如何将使用 SSM 代理和统一 CloudWatch 代理的本地服务器配置为仅使用临时凭证?

上次更新日期:2020 年 10 月 8 日

我有一个混合环境,其中的本地服务器同时使用 AWS Systems Manager 代理(SSM 代理)和统一 Amazon CloudWatch 代理。如何将我的本地服务器配置为仅使用临时凭证?

解决方法

在本地安装统一 CloudWatch 代理时,请在配置文件中指定 AWS Identity and Access Management (IAM) 用户及其访问权限和密钥。这些是长期凭证,出于安全原因,某些策略会要求您定期轮换凭证。在本地安装 SSM 代理后,它可以使用临时凭证流程担任某个 IAM 角色

要将统一 CloudWatch 代理配置为使用 SSM 代理提供的临时凭证从本地服务器推送指标和日志:

1.    将 common-config.toml CloudWatch 代理配置文件配置为指向 SSM 代理生成的凭证文件。

注意:该配置文件位于以下目录中:

  • 对于 Linux,此目录为 /opt/aws/amazon-cloudwatch-agent/etc
  • 对于 Windows,此目录为 C:\ProgramData\Amazon\AmazonCloudWatchAgent

SSM 代理会每 30 分钟用新的临时凭证更新一次凭证文件。若将统一 CloudWatch 代理与凭证文件相关联,可允许 CloudWatch 代理使用 SSM 代理生成的临时凭证。

Windows:

[credentials]
shared_credential_profile = "default"
shared_credential_file = "C:\\Windows\\System32\\config\\systemprofile\\.aws\\credentials"

Linux:

[credentials]
shared_credential_profile = "default"
shared_credential_file = "/root/.aws/credentials"

2.    更改权限,以允许统一 CloudWatch 代理读取 SSM 代理凭证文件。
对于 Windows:两个代理均使用 SYSTEM 用户身份运行,因此不需要更改权限。
对于 Linux:统一 CloudWatch 代理以根用户身份运行。该代理还能以由您在代理配置文件中指定的用户身份运行,此用户由您使用 run_as_user 选项指定。如果您的代理使用根用户以外的身份运行,则您必须授予相应的权限来允许用户读取该文件。

3.    在 SSM 代理的凭证文件末尾的新行中添加 region 参数。您已在第 1 步中将该文件配置为指向 shared_credential_file

region = eu-west-1

注意:请确保将 eu-west-1 替换为您的区域。

4.    (仅限 Windows)将统一 CloudWatch 代理服务的启动类型更改为 Automatic (Delayed)。此更改确认,在启动期间,CloudWatch 代理服务在 SSM 代理服务之后启动。

5.    将 CloudWatchAgentServerPolicy IAM 策略附加到混合环境的 IAM 服务角色,并使其紧挨着所需的 AmazonSSMManagedInstanceCore IAM 策略。


修改代理或区域信息的通用配置(Windows/Linux 上 common-config.toml 文件的位置)

将临时凭证用于 AWS 资源(临时凭证流程的描述)

为混合环境创建 IAM 服务角色

这篇文章对您有帮助吗?


您是否需要账单或技术支持?