Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux AWS:试图将指标从EC2推送到CloudWatch的身份验证问题_Linux_Amazon Web Services_Amazon Cloudwatch - Fatal编程技术网

Linux AWS:试图将指标从EC2推送到CloudWatch的身份验证问题

Linux AWS:试图将指标从EC2推送到CloudWatch的身份验证问题,linux,amazon-web-services,amazon-cloudwatch,Linux,Amazon Web Services,Amazon Cloudwatch,我正在尝试设置一个EC2(RHEL7)实例,以使用perl脚本将度量推送到cloudwatch,如中所述 我收到HTTP状态400消息“请求中包含的安全令牌无效” 实例配置文件与附加了以下策略的实例相关联: { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:Put

我正在尝试设置一个EC2(RHEL7)实例,以使用perl脚本将度量推送到cloudwatch,如中所述

我收到HTTP状态400消息“请求中包含的安全令牌无效”

实例配置文件与附加了以下策略的实例相关联:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "cloudwatch:PutMetricData",
                "cloudwatch:GetMetricStatistics",
                "cloudwatch:ListMetrics"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeTags"
            ],
            "Resource": "*"
        }
    ]
}
我从实例元数据中提取AWSAccessKeyId和AWSSecretKey,如下所示:

ROLE=$(curl http://169.254.169.254/latest/meta-data/iam/security-credentials/)
CRED=$(curl http://169.254.169.254/latest/meta-data/iam/security-credentials/$ROLE)

AWSAccessKeyId=$(sed '/AccessKeyId/!d; s/.*:\ \+"\(.\+\)",/\1/g' <<< "$CRED")
AWSSecretKey=$(sed '/SecretAccessKey/!d; s/.*:\ \+"\(.\+\)",/\1/g' <<< "$CRED")
你知道为什么它拒绝我的证书吗


提前感谢

如果您使用的是IAM配置文件,则无需输入脚本调用的凭据。从通话中删除访问密钥和密钥

./mon-put-instance-data.pl --mem-util --verbose

如果您使用的是IAM配置文件,则不需要为脚本调用输入凭据。从通话中删除访问密钥和密钥

./mon-put-instance-data.pl --mem-util --verbose

对。你们都是对的——如果你没有具体说明并且似乎有效,它会自动获得角色信誉

我不知道为什么手动设置cred会不起作用,但我可以看看perl脚本来很容易地解决这个问题


谢谢你的帮助。

是的。你们都是对的——如果你没有具体说明并且似乎有效,它会自动获得角色信誉

我不知道为什么手动设置cred会不起作用,但我可以看看perl脚本来很容易地解决这个问题

感谢您的帮助。

发件人:

以下示例假定您提供了IAM角色或awscreds.conf文件。否则,必须为这些命令使用--aws访问密钥id和--aws密钥参数提供凭据

当出现错误时,作为一个选项:

错误:调用CloudWatch:HTTP 400失败。消息:请求中包含的安全令牌无效

脚本使用配置文件(例如,凭据错误):

因此,必须提供IAM角色或
awscreds.conf
--aws*
参数。 IAM角色具有正确的:

发件人:

以下示例假定您提供了IAM角色或awscreds.conf文件。否则,必须为这些命令使用--aws访问密钥id和--aws密钥参数提供凭据

当出现错误时,作为一个选项:

错误:调用CloudWatch:HTTP 400失败。消息:请求中包含的安全令牌无效

脚本使用配置文件(例如,凭据错误):

因此,必须提供IAM角色或
awscreds.conf
--aws*
参数。 IAM角色具有正确的:


您是否使用IAM角色?如果是这样,您不需要凭据,它是为您处理的。您是否使用IAM角色?如果是这样,您不需要凭证,它是为您处理的
aws-scripts-mon/awscreds.conf
cloudwatch:PutMetricData
cloudwatch:GetMetricStatistics
cloudwatch:ListMetrics
ec2:DescribeTags