使用AWS CLI-错误凭据错误



我正试图使用AWS EC2实例中的mon put数据来设置一些自定义CloudWatch指标。根据文件,我使用它是正确的。

mon-put-data --namespace Layer --metric-name ResponseTime --dimensions "app=AppName" --value 2

然而,当我运行它时,我会得到以下错误:

mon-put-data: Malformed input-Bad credentials in file: /user/.aws/credentials [keyId: null | secretKey null]

凭证文件的格式如下,是使用aws configure 自动生成的

[default]
aws_access_key_id = KJHJKHJKHJKHJKHJKHJK
aws_secret_access_key = KHKJJKHJKHJKHJH123123kjhjkhjk12312

我还确认AWS_CREDENTIAL_FILE路径存在并且是正确的。此外,我已经确认IAM用户可以完全访问CloudWatch和EC2。

有人能告诉我我做错了什么吗?

我设法通过添加-I和-S选项使其工作。内联凭据并不是很理想,但它目前有效。

mon-put-data -I <Key ID> -S <Secret Key> --namespace Layer --metric-name ResponseTime --dimensions "app=AppName" --value 2

很明显,mon put data命令使用了一个与AWS CLI.创建的凭据文件格式不同的凭据文件。不幸的是,文档中没有定义它,我找不到调试它的代码。

我最初误解了您的问题,认为您使用的是实际的AWS CLI工具,该工具使用了您发布的INI风格的格式:

[default]
aws_access_key_id = KJHJKHJKHJKHJKHJKHJK
aws_secret_access_key = KHKJJKHJKHJKHJH123123kjhjkhjk12312

但是,当您使用mon-put-data时,它不遵循CLI中的任何配置或选项。

对于特定于服务的CLI(如Cloudwatch工具),您必须按照本页中的详细说明设置该工具。

您必须生成以下格式的文件:

AWSAccessKeyId=<Write your AWS access ID>
AWSSecretKey=<Write your AWS secret key>

然后必须传递--aws-credential-file作为参数,或者设置环境变量AWS_CREDENTIAL_FILE

如果您使用的是标准的一体式AWS CLI,则可以使用aws.cloudwatch.put-metric-data执行与mon-put-data完全相同的操作。

相关内容

  • 没有找到相关文章

最新更新