2

我正在嘗試在連接有IAM角色的RedHat實例上使用CloudWatch日誌代理。該角色可以完全訪問CloudWatch。CloudWatch代理無法識別IAM角色的存在

http://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/QuickStartEC2Instance.html#running-ec2-step-2

即使IAM角色肯定是附加到實例,我總是看到在/var/log/awslogs.log此消息:

我在這裏使用說明安裝和設置代理

NoCredentialsError: Unable to locate credentials

當我運行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

安裝代理時,您是否在提示輸入憑據時按ENTER? '如果使用IAM角色,請按Enter鍵。否則,輸入您的AWS訪問密鑰ID。' – helloV

+0

檢查'/ var/awslogs/etc/aws.conf'。如果它包含'aws_access_key_id'和'aws_secret_access_key'的條目,請刪除它們,然後重新啓動代理。 – helloV

+0

當它詢問訪問和密鑰時,我按下Enter鍵。 '/ var/awslogs/etc/aws.conf'不包含'aws_access_key_id'或'aws_secret_access_key'。爲了清晰起見,編輯了OP。 – jcgrowley

回答

1

因此,在我的頭撞牆後,我終於弄清楚我的問題是什麼。我正在使用代理來啓用CloudWatch代理與CloudWatch進行通信,並且我忘記將NO_PROXY=169.254.169.254添加到/var/awslogs/etc/proxy.conf。所以當代理試圖查詢元數據以獲取關於IAM角色的信息時,它試圖通過代理來獲取它。一旦我添加了NO_PROXY,它工作得很好。

+0

這也解決了我的問題。謝謝 ! – bluemalkin