使用 AWS CLI - 凭证错误
Using AWS CLI - Bad Credential Error
我正在尝试使用我的 AWS EC2 实例中的 mon-put-data 设置一些自定义 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.
创建的格式不同 不幸的是,文档中没有任何内容来定义它,我找不到代码来调试它。
我最初误读了你的问题并认为你使用的是 actual AWS CLI tool,它使用你发布的 INI-style 格式:
[default]
aws_access_key_id = KJHJKHJKHJKHJKHJKHJK
aws_secret_access_key = KHKJJKHJKHJKHJH123123kjhjkhjk12312
但是,当您使用 mon-put-data
时,它不遵循 CLI 中的任何配置或选项。
对于 service-specific CLI(如 Cloudwatch 工具),您必须按照 on this page 的详细说明设置工具。
您必须生成此格式的文件:
AWSAccessKeyId=<Write your AWS access ID>
AWSSecretKey=<Write your AWS secret key>
然后你必须传递--aws-credential-file
作为你的参数,或者设置环境变量AWS_CREDENTIAL_FILE
。
如果您使用的是标准 all-in-one AWS CLI,则可以使用 aws.cloudwatch.put-metric-data
.
执行与 mon-put-data
完全相同的操作
我正在尝试使用我的 AWS EC2 实例中的 mon-put-data 设置一些自定义 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.
创建的格式不同 不幸的是,文档中没有任何内容来定义它,我找不到代码来调试它。
我最初误读了你的问题并认为你使用的是 actual AWS CLI tool,它使用你发布的 INI-style 格式:
[default]
aws_access_key_id = KJHJKHJKHJKHJKHJKHJK
aws_secret_access_key = KHKJJKHJKHJKHJH123123kjhjkhjk12312
但是,当您使用 mon-put-data
时,它不遵循 CLI 中的任何配置或选项。
对于 service-specific CLI(如 Cloudwatch 工具),您必须按照 on this page 的详细说明设置工具。
您必须生成此格式的文件:
AWSAccessKeyId=<Write your AWS access ID>
AWSSecretKey=<Write your AWS secret key>
然后你必须传递--aws-credential-file
作为你的参数,或者设置环境变量AWS_CREDENTIAL_FILE
。
如果您使用的是标准 all-in-one AWS CLI,则可以使用 aws.cloudwatch.put-metric-data
.
mon-put-data
完全相同的操作