我有一个混合环境,本地服务器使用 AWS Systems Manager Agent (SSM Agent) 和统一的 Amazon CloudWatch 代理。我想将我的本地服务器配置为仅使用临时凭证。
解决方案
**注意:**如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI。
统一的 CloudWatch 代理使用配置文件中指定的 AWS Identity and Access Management (IAM) 凭证进行性能监控和管理。但是,为了增强安全性,代理可能会轮换凭证,而不是将其存储在本地文件中。SSM 代理允许您的本地主机代入 IAM 角色,CloudWatch 代理使用此角色向 CloudWatch 发布指标和日志。
将您的本地服务器配置为仅使用临时凭证
完成以下步骤:
-
将您的本地主机与 AWS System Manager 集成。有关详细信息,请参阅使用 Systems Manager 管理混合和多云环境中的节点。
-
将 CloudWatchAgentServerPolicy 策略附加到 IAM 服务角色。有关说明,请参阅使用 AWS 管理控制台为 Systems Manager 混合激活创建 IAM 服务角色。
-
安装或更新 AWS CLI。
-
运行以下 get-caller-identity 命令以验证 IAM 角色是否已附加到您的本地主机:
aws sts get-caller-identity
输出示例:
{
"UserId": "AROAJXQ3RVCBOTUDZ2AWM:mi-070c8d5758243078f",
"Account": "123456789012",
"Arn": "arn:aws:sts::444455556666:assumed-role/SSMServiceRole/mi-070c8d5758243078f"
}
-
确认您已正确安装统一的 CloudWatch 代理。
-
修改 common-config.toml 文件,使其指向 SSM 代理生成的凭证。有关说明,请参阅修改 CloudWatch 代理的常用配置和命名配置文件。
**注意:**SSM 代理每 30 分钟刷新一次凭证。
对于 Linux,以 common.config.toml 文件路径为例:
/opt/aws/amazon-cloudwatch-agent/etc/common-config.toml
输出示例:
[credentials]
shared_credential_profile = "default"
shared_credential_file = "/root/.aws/credentials"
对于 Windows,以 common-config.toml 文件路径为例:
$Env:ProgramData\Amazon\AmazonCloudWatchAgent\common-config.toml
输出示例:
[credentials] shared_credential_profile = "default"
shared_credential_file = "C:\\Windows\\System32\\config\\systemprofile\\.aws\\credentials"
-
在 SSM 代理引用的 shared_credential_file 凭证文件中配置您的 AWS 区域:
cat /root/.aws/config
[default]
region = eu-west-1
**注意:**请将 eu-west-1 替换为您的区域。
-
对于 Linux 主机,请配置 CloudWatch 代理的权限,以允许统一的 CloudWatch 代理读取 SSM 代理凭证文件。默认情况下,统一的 CloudWatch 代理以根用户身份运行。如果您使用 run_as_user 参数将 CloudWatch 代理配置为以非特权用户身份运行,请授予该用户访问凭证文件的权限。有关说明,请参阅以其他用户身份运行 CloudWatch 代理。
**重要事项:**对于 Windows 主机,请跳过此步骤。两个代理都以 SYSTEM 用户身份运行。
-
在 Windows 服务器上打开 Services(服务),然后选择 Amazon CloudWatch Agent Properties(Amazon CloudWatch 代理属性)以配置 CloudWatch 代理服务启动。
从 Properties(属性)中,选择 Startup type(启动类型)下拉列表,然后选择 Automatic (Delayed Start)(自动(延迟启动))。
注意:****Automatic (Delayed Start)(自动(延迟启动))启动类型在 SSM 代理服务之后自动启动 CloudWatch 代理服务。
相关信息
在本地服务器上下载 CloudWatch 代理
如何安装和配置统一的 CloudWatch 代理,以将指标和日志从 EC2 实例发送到 CloudWatch?