Amazon web services CloudWatch代理不';无法识别IAM角色的存在

Amazon web services CloudWatch代理不';无法识别IAM角色的存在,amazon-web-services,amazon-iam,amazon-cloudwatch,amazon-cloudwatchlogs,Amazon Web Services,Amazon Iam,Amazon Cloudwatch,Amazon Cloudwatchlogs,我正在尝试在附加IAM角色的RedHat实例上使用CloudWatch日志代理。该角色具有对CloudWatch的完全访问权限。我按照以下说明安装并设置了代理: 尽管IAM角色肯定已附加到实例,但我仍在/var/log/awslogs.log中看到这条消息: NoCredentialsError:找不到凭据 当我运行aws配置列表时,我可以看到IAM角色的详细信息 Name Value Type Locati

我正在尝试在附加IAM角色的RedHat实例上使用CloudWatch日志代理。该角色具有对CloudWatch的完全访问权限。我按照以下说明安装并设置了代理:

尽管IAM角色肯定已附加到实例,但我仍在/var/log/awslogs.log中看到这条消息:

NoCredentialsError:找不到凭据

当我运行aws配置列表时,我可以看到IAM角色的详细信息

  Name                    Value             Type           Location
  ----                    -----             ----           --------
 profile                <not set>           None           None
 access_key     ********************        iam-role
 secret_key     ********************        iam-role
 region                us-east-1            config-file    ~/.aws/config

那么为什么CloudWatch logs代理找不到并使用IAM角色呢?

所以在我的头撞了很多墙之后,我终于明白了我的问题所在。我正在使用代理使CloudWatch代理能够与CloudWatch通信,但我忘记将
NO_proxy=169.254.169.254
添加到
/var/awslogs/etc/proxy.conf
。因此,当代理试图查询元数据以获取有关IAM角色的信息时,它试图通过代理获取该信息。在中添加NO_代理后,它工作正常。

安装代理时,在提示输入凭据时是否按ENTER键<代码>如果使用IAM角色,请按Enter键。否则,请输入您的AWS访问密钥ID。检查
/var/awslogs/etc/AWS.conf
。如果它有
aws\u access\u key\u id
aws\u secret\u access\u key
的条目,请删除它们,然后重新启动代理。当它请求访问和密钥时,我按了Enter键
/var/awslogs/etc/aws.conf
不包含
aws\u access\u key\u id
aws\u secret\u access\u key
。为了清晰起见,编辑了这篇文章。这也解决了我的问题。谢谢
 [plugins]
 cwlogs = cwlogs
 [default]
 region = us-east-1