标签: aws-cli

从php执行AWS CLI命令导致无法找到凭据

我试图使用shell exec从php代码中运行aws s3 cp命令.以下是php代码.

echo shell_exec("sudo aws s3 cp s3://<bucket>/somefolder/somefile s3://<bucket>/someotherfolder/somefile --region ap-southeast-1 --acl public-read");
Run Code Online (Sandbox Code Playgroud)

文件未被复制,echo的输出如下

"无法找到凭据已完成1个部分,其中包含...文件"

注1:我已经使用aws configure命令设置了凭据

注意2:如果我直接从终端运行完全相同的命令,它工作正常.

任何的想法?

php amazon-s3 amazon-web-services aws-cli

9
推荐指数
2
解决办法
8072
查看次数

带有bash变量的JMESPath查询表达式

使用简单的aws cli查询来检查是否存在Lambda函数并回显相关角色(如果存在):

#!/bin/bash

fname=$1
role=$(aws lambda list-functions --query 'Functions[?FunctionName == `$fname`].Role' --output text)

echo "$fname role: $role"
Run Code Online (Sandbox Code Playgroud)

但是,$ fname似乎正在解析为aws命令中的空字符串.我试图逃避后面的嘀嗒声,交换`到'以及其他捶打编辑的镜像(是的,我在调用脚本时在cl上传递一个字符串:)

如何在bash脚本中将变量正确传递给JMESPath查询?

bash aws-cli jmespath

9
推荐指数
2
解决办法
5055
查看次数

哪个角色附加到实例

如何检查哪些 IAM 角色及其策略 json 附加到正在运行的 EC2实例?

是否可以通过 AWS CLI?

这里是 aws ec2 ddescribe-instances 的响应 在此处输入图片说明

我尝试触发命令 - aws iam list-instance-profiles
它给了我以下错误 -

调用 ListInstanceProfiles 操作时发生错误(AccessDenied):用户:无权执行:资源上的 iam:ListInstanceProfiles:

amazon-ec2 amazon-web-services amazon-iam aws-cli

9
推荐指数
2
解决办法
5136
查看次数

在 aws-cli 上进行身份验证时出现 UnrecognizedClientException 错误

当我拉出一个干净的 Alphine Linux Docker 镜像时,安装aws-cli在它上面并尝试验证我自己,aws ecr get-authorization-token --region eu-central-1我不断收到以下错误:

调用 GetAuthorizationToken 操作时发生错误 ( UnrecognizedClientException ):请求中包含的安全令牌 无效

我已经检查了似乎没问题的时区,并且该命令在我的本地机器上正常工作。

这些是我运行来设置的命令aws-cli apk add --update python python-dev py-pip pip install awscli --upgrade export AWS_ACCESS_KEY_ID=XXXXXXXXXXXXXXXXXXXX export AWS_SECRET_ACCESS_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

有什么明显的我遗漏了吗?

command-line-interface amazon-web-services aws-cli alpine-linux

9
推荐指数
4
解决办法
2万
查看次数

AWS CLI上传失败:未知编码:idna

我正在尝试使用AWS CLI将一些文件推送到s3并遇到错误:

upload failed: ... An HTTP Client raised and unhandled exception: unknown encoding: idna

我相信这是Python特有的问题,但是我不确定如何为我的python解释器启用这种类型的编码。我刚刚刚安装了Python 3.6,并验证了Powershell和cmd正在使用它。

$> python --version Python 3.6.7

如果这不是特定于Python的问题,那么知道我也刚刚安装了AWS CLI并对其进行了正确配置可能会有所帮助。让我知道是否还有其他我想解决的问题。谢谢。

amazon-s3 python-3.x aws-cli

9
推荐指数
2
解决办法
3667
查看次数

出口| 仅使用 AWS CLI 导入 DynamoDB

我的目标是拥有一个简单的工具,可以仅通过aws cli或更少的第三方将 dynamodb 导出到本地文件(json/csv)。我的表大小约为 500mb。

我正在进行几天的研究,我看到了非常好的项目,例如dynamodump另一个 SDK 实现。我还测试了Datapipeline来自亚马逊的,但对于我目标的任务想要简单的aws cli.

假设我已经有表的映射,例如索引和属性。现在我只想导入我拥有的项目。对我来说,最好的实施解决方案是这样的:

  1. 将表从 aws 导出到本地文件: aws dynamodb scan --table-name SOMETABLENAME --output json | jq '.Items[]' > SOMETABLENAME.json

  2. sed使用、jqawk...等内容渲染文件。要获得可以导入到 aws-dynamodb 的正确 json 格式

  3. 使用以下命令将项目从 SOMETABLENAME 导入到 aws-dynamodb:

    aws dynamodb put-item --table-name SOMETABLENAME --item file://SOMETABLENAME.json

amazon-dynamodb aws-cli

9
推荐指数
2
解决办法
1万
查看次数

具有ID的API不包含路径/ *的资源,该资源的ANY方法具有集成LAMBDA

.net核心无服务器Web api我正在尝试与lambda和api网关进行代理集成,而AWS控制台一切正常

但是我在尝试与cli集成时遇到了aws cli命令的问题,但lambda没有正确集成

aws apigateway create-resource --rest-api-id id --parent-id id --path-part {proxy+}


aws apigateway put-method --rest-api-id id --resource-id id --http-method ANY --authorization-type "NONE" 


aws apigateway put-integration --rest-api-id id --resource-id id --http-method ANY --type HTTP_PROXY --integration-http-method ANY --uri arn:aws:apigateway:us-east-2:lambda:path//2015-03-31/functions/arn:aws:lambda:us-east-2:account_id:function:helloworld/invocations 


aws lambda add-permission --function-name helloworld --action lambda:InvokeFunction --principal apigateway.amazonaws.com --source-arn arn:aws:execute-api:us-east-2:account_id:apiid/*/*/* --statement-id 12345678
Run Code Online (Sandbox Code Playgroud)

amazon-web-services aws-cli aws-lambda asp.net-core-webapi aws-serverless

9
推荐指数
1
解决办法
1099
查看次数

GitHub 操作 - AWS CLI

最近,以下 GitHub操作已被弃用,删除日期已确定在月底 (2019-12-31)。问题是,目前还没有“官方”替代方案(应该在这里)。我的问题是:

  1. 有人知道2019-12-31之前会不会放出“官方”动作?

  2. 有替代方案吗?

aws-cli github-actions

9
推荐指数
3
解决办法
3837
查看次数

无权执行 sts:AssumeRoleWithWebIdentity- 403

我一直在尝试使用 k8s-sig 组提供的指南运行外部 dns pod。我遵循了指南的每一步,并得到了以下错误。

time="2021-02-27T13:27:20Z" level=error msg="records retrieval failed: failed to list hosted zones: WebIdentityErr: failed to retrieve credentials\ncaused by: AccessDenied: Not authorized to perform sts:AssumeRoleWithWebIdentity\n\tstatus code: 403, request id: 87a3ca86-ceb0-47be-8f90-25d0c2de9f48"
Run Code Online (Sandbox Code Playgroud)

我使用 Terraform 创建了 AWS IAM 策略,并成功创建了它。除了我使用过的服务帐户的 IAM 角色之外eksctl,其他所有内容都是通过 Terraform 生成的。

但是后来我看到了这篇文章,它说使用 awscli 创建 AWS IAM 策略可以消除这个错误。所以我删除了使用 Terraform 创建的策略,并使用 awscli 重新创建它。然而,它抛出了同样的错误错误。

下面是我的外部 dns yaml 文件。

apiVersion: v1
kind: ServiceAccount
metadata:
  name: external-dns
  # If you're using Amazon EKS with IAM Roles for Service Accounts, specify …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services aws-cli kubernetes eksctl external-dns

9
推荐指数
3
解决办法
4449
查看次数

AWS CLI - 如何加密凭证

使用 aws configure 时,凭证以明文形式存储在我的工作站上。这是一个巨大的安全违规行为。我尝试在 aws cli github 上打开一个问题,但它很快就被关闭了。我直接使用 Terraform 和 aws cli,因此需要解决方法来支持这一点。

例子:

[MyProfile]
aws_access_key_id = xxxxxxxxxxxxxxx
aws_secret_access_key = yyyyyyyyyyyyyyyyyy
region=us-east-2
output=json
Run Code Online (Sandbox Code Playgroud)

amazon-web-services aws-cli

9
推荐指数
1
解决办法
3900
查看次数