【问题标题】:Where can I put my .aws/credential file using cloudwatch api?我可以使用 cloudwatch api 将我的 .aws/credential 文件放在哪里?
【发布时间】:2020-09-25 08:35:27
【问题描述】:

有人帮助我如何在 CloudWatch 函数中传递 AWS 密钥、密钥和令牌? 我也尝试在 CloudWatch 中传递所有凭证数组,但传递 .aws/credential 文件仍然给我错误,所以我也放入了我的用户文件夹,而不是它给我的错误权限被拒绝。

这是我用来实现 AWS 的 CloudWatch PHP SDK 的函数

$cloudWatchClient = new CloudWatchClient([
    'profile' => 'default',
    'version' => 'latest',
    'region'  => REGION,
]);

我也试过了,但是不行

$credentials = new Aws\Credentials\Credentials(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY,TOKEN);


$cloudWatchClient = new CloudWatchClient([
    'profile' => 'default',
    'version'     => 'latest',
    'region'      => REGION,
    'credentials' => $credentials
]);

让我知道我该如何处理?或者我可以把这个文件放在哪里?

【问题讨论】:

    标签: php amazon-web-services sdk amazon-cloudwatch


    【解决方案1】:

    你能提供更多的背景信息吗?在本地运行或尝试在 AWS 实例上运行,或者您的意思是 Lambda 函数?

    您放置的第一个代码仅适用于具有附加这些权限的角色的 AWS 实例。

    第二个代码我想你在其他地方声明了这个 ENVS 对吗?

    AWS_ACCESS_KEY_ID
    AWS_SECRET_ACCESS_KEY
    TOKEN
    

    如果你不使用TOKEN,你也应该删除它。

    【讨论】:

    • 目前,我正在我的本地服务器上运行,我将部署在 ec2 实例上,并且没有令牌我没有访问 SDK 功能的权限。我使用的是 PHP AWS SDK 而不是 lambda 函数
    • ok 在这种情况下尝试这样做 ``` $credentials = new Aws\Credentials\Credentials(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY); $cloudWatchClient = new CloudWatchClient([ 'profile' => 'default', 'version' => 'latest', 'region' => REGION, 'credentials' => $credentials ]); ``` 并用您的密钥替换 AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY。确保这些密钥的用户有权执行 Cloudwatch 操作
    • 稍后当您部署到 AWS EC2 实例时,您不需要放置凭证行,只需为具有这些权限的 de EC2 实例分配一个角色
    • 我已经尝试过了,但这在 cloudwatch 功能中对我不起作用,但是当我在 s3 存储桶中使用 $credentials = new Aws\Credentials\Credentials(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY); 时,它对我有用,但在 cloudwatch 中不起作用
    • 您与这些密钥关联的 AWS 用户有权执行 cloudwatch 操作吗?你能分享那个用户的政策吗?
    猜你喜欢
    • 2016-03-06
    • 1970-01-01
    • 2015-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多