CloudWatch 代理凭证首选项
本节概述了 CloudWatch 代理在与其他 Amazon 服务和 API 通信时用来获取凭证的凭证提供程序链。顺序如下所示:
注意
第二到第五项列出的首选项与 Amazon SDK 中定义的首选项顺序相同。有关更多信息,请参阅 SDK 文档中的指定凭证。
-
共享配置和凭证文件如 CloudWatch 代理的
common-config.toml
文件中所定义。有关更多信息,请参阅 使用 Amazon Systems Manager 安装 CloudWatch 代理。 -
Amazon SDK 环境变量
重要
在 Linux 上,如果您使用
amazon-cloudwatch-agent-ctl
脚本运行 CloudWatch 代理,则该脚本会将代理作为systemd
服务启动。在这种情况下,代理无法访问诸如HOME
、AWS_ACCESS_KEY_ID
和AWS_SECRET_ACCESS_KEY
之类的环境变量。 -
共享配置和凭证文件位于
$HOME/%USERPROFILE%
中注意
对于 Linux 和 MacOS,CloudWatch 代理会在
$HOME
中查找.aws/credentials
,而对于 Windows,则会在%USERPROFILE%
中查找。与 Amazon SDK 不同的是,如果无法访问环境变量,则 CloudWatch 代理没有用于确定主目录的备用方法。这种行为上的差异是为了保持与 Amazon SDK 早期实现的向后兼容性。此外,与
common-config.toml
中提供的共享凭证不同的是,如果 Amazon SDK 派生的共享凭证过期并进行轮换,则 CloudWatch 代理不会自动获取续订的凭证,需要重启代理才能获取该凭证。 -
任务的 Amazon Identity and Access Management 角色,如果存在一个应用程序使用 Amazon Elastic Container Service 任务定义或 RunTask API 操作。
-
附加到 Amazon EC2 实例的实例配置文件
作为最佳实践,建议您在使用 CloudWatch 代理时按以下顺序指定凭证。
-
如果您的应用程序使用 Amazon Elastic Container Service 任务定义或 RunTask API 操作,则请使用 IAM 角色执行任务。
-
如果您的应用程序在 Amazon EC2 实例上运行,请使用 IAM 角色。
-
使用 CloudWatch 代理
common-config.toml
文件指定凭证文件。此凭证文件与其他 Amazon SDK 和 Amazon CLI 使用的凭证文件相同。如果您已经在使用共享凭证文件,则也可以使用该文件来实现此目的。如果您使用 CloudWatch 代理的common-config.toml
文件提供该凭证,则可以确保代理在这些凭证过期时使用轮换后的凭证,进行替换而无需重启代理。 -
使用环境变量。如果您是在 Amazon EC2 实例以外的计算机上进行开发工作,则设置环境变量非常有用。
注意
如果您按照 向不同账户发送指标、日志和跟踪信息 中的说明将遥测数据发送到不同的账户,则 CloudWatch 代理将使用本节所述的凭证提供程序链来获取初始凭证集。然后,它在担任 CloudWatch 代理配置文件中的 role_arn
指定的 IAM 角色时使用这些凭证。