我正在尝试在附加了IAM角色的RedHat实例上使用CloudWatch日志代理。该角色具有对CloudWatch的完全访问权限。我使用以下说明安装并设置了代理:
即使IAM角色肯定附加到实例,我仍然在/var/log/awslogs.log中看到此消息:
NoCredentialsError:无法找到凭据
当我运行aws configure list
时,我可以看到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
以下是/var/awslogs/etc/aws.conf
的内容。
[plugins]
cwlogs = cwlogs
[default]
region = us-east-1
那么为什么CloudWatch日志代理无法找到并使用IAM角色?
答案 0 :(得分:4)
所以在我的头撞到墙上之后,我终于弄清楚我的问题是什么。我正在使用代理来启用CloudWatch代理与CloudWatch进行通信,而我忘记将NO_PROXY=169.254.169.254
添加到/var/awslogs/etc/proxy.conf
。因此,当代理尝试查询元数据以获取有关IAM角色的信息时,它会尝试通过代理来获取它。一旦我添加了NO_PROXY,它就可以正常工作。