CloudWatch 代理凭证首选项 - Amazon CloudWatch
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

CloudWatch 代理凭证首选项

本节概述了 CloudWatch 代理在与其他 Amazon 服务和 API 通信时用来获取凭证的凭证提供程序链。顺序如下所示。以下列表中第二到第五项列出的首选项与 Amazon SDK 中定义的首选项顺序相同。有关更多信息,请参阅 SDK 文档中的指定凭证

  1. 共享配置和凭证文件如 CloudWatch 代理的 common-config.toml 文件中所定义。有关更多信息,请参阅 (可选)修改代理的通用配置或区域信息

  2. Amazon SDK 环境变量

    重要

    在 Linux 上,如果您使用 amazon-cloudwatch-agent-ctl 脚本运行 CloudWatch 代理,则该脚本会将代理作为 systemd 服务启动。在这种情况下,代理无法访问诸如 HOMEAWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY 之类的环境变量。

  3. 共享配置和凭证文件位于 $HOME/%USERPROFILE%

    注意

    对于 Linux 和 MacOS,CloudWatch 代理会在 $HOME 中查找 .aws/credentials,而对于 Windows,则会在 %USERPROFILE% 中查找。与 Amazon SDK 不同的是,如果无法访问环境变量,则 CloudWatch 代理没有用于确定主目录的备用方法。这种行为上的差异是为了保持与 Amazon SDK 早期实现的向后兼容性。

    此外,与 common-config.toml 中提供的共享凭证不同的是,如果 Amazon SDK 派生的共享凭证过期并进行轮换,则 CloudWatch 代理不会自动获取续订的凭证,需要重启代理才能获取该凭证。

  4. 任务的 Amazon Identity and Access Management 角色,如果存在一个应用程序使用 Amazon Elastic Container Service 任务定义或 RunTask API 操作。

  5. 附加到 Amazon EC2 实例的实例配置文件

作为最佳实践,建议您在使用 CloudWatch 代理时按以下顺序指定凭证。

  1. 如果您的应用程序使用 Amazon Elastic Container Service 任务定义或 RunTask API 操作,则请使用 IAM 角色执行任务。

  2. 如果您的应用程序在 Amazon EC2 实例上运行,请使用 IAM 角色。

  3. 使用 CloudWatch 代理 common-config.toml 文件指定凭证文件。此凭证文件与其他 Amazon SDK 和 Amazon CLI 使用的凭证文件相同。如果您已经在使用共享凭证文件,则也可以使用该文件来实现此目的。如果您使用 CloudWatch 代理的 common-config.toml 文件提供该凭证,则可以确保代理在这些凭证过期时使用轮换后的凭证,进行替换而无需重启代理。

  4. 使用环境变量。如果您是在 Amazon EC2 实例以外的计算机上进行开发工作,则设置环境变量非常有用。

注意

如果您按照 向不同账户发送指标、日志和跟踪信息 中的说明将遥测数据发送到不同的账户,则 CloudWatch 代理将使用本节所述的凭证提供程序链来获取初始凭证集。然后,它在担任 CloudWatch 代理配置文件中的 role_arn 指定的 IAM 角色时使用这些凭证。