标签: aws-cli

如何修复 AccessDenied 调用 CopyObject

我正在尝试将文件从 A 帐户中的存储桶复制到 B 帐户中的另一个存储桶。当我尝试使用命令同步文件时

aws s3 sync s3://BUCKET_A s3://BUCKET_B

它返回以下输出:

copy failed: s3://BUCKET_A to s3://BUCKET_B An error occurred (AccessDenied) when calling the CopyObject operation: Access Denied
Run Code Online (Sandbox Code Playgroud)

这是附加到在 B 帐户中创建的用户的策略(将从存储桶 A 中复制文件):

{
    "Version": "2012-10-17",
    "Statement": [
      {
          "Effect": "Allow",
          "Action": [
              "s3:ListBucket",
              "s3:GetObject",
              "s3:PutObject",
              "s3:PutObjectAcl"
          ],
          "Resource": [
              "arn:aws:s3:::BUCKET_A",
              "arn:aws:s3::: BUCKET_A/*"
          ]
      },
      {
          "Effect": "Allow",
          "Action": [
              "s3:ListBucket",
              "s3:GetObject",
              "s3:PutObject",
              "s3:PutObjectAcl"
          ],
          "Resource": [
              "arn:aws:s3:::BUCKET_B",
              "arn:aws:s3:::BUCKET_B/*"
          ]
      }
    ]
}
Run Code Online (Sandbox Code Playgroud)

也许我缺少一些许可?CopyObject我在我的用户/存储桶策略中找不到添加权限

amazon-s3 bucket amazon-web-services aws-cli terraform

15
推荐指数
2
解决办法
8万
查看次数

docker 登录:存储凭据时出错`存根收到错误数据。`

首先,我安装了 AWS-CLI 并且我已经使用“AWS configure”来设置我的密钥,我还使用“Docker login”命令登录并且当我输入 Get-ECRLoginCommand 时我成功了。它有效并为我返回结果。

但是当我尝试使用命令时:

(Get-ECRLoginCommand).Password | docker login --username AWS --password-stdin 837859123533.dkr.ecr.ap-east-1.amazonaws.com/spring-boot
Run Code Online (Sandbox Code Playgroud)

我收到一个错误,如下所示:

保存凭据时出错:存储凭据时出错 - 错误:退出状态 1,输出:error storing credentials - err: exit status 1, out:存根收到错误数据。``

powershell amazon-web-services docker aws-cli amazon-ecr

15
推荐指数
3
解决办法
8946
查看次数

AWS sts 在一个命令中扮演角色

要在 CLI 中担任 AWS 角色,我执行以下命令:

aws sts assume-role --role-arn arn:aws:iam::123456789123:role/myAwesomeRole --role-session-name test --region eu-central-1
Run Code Online (Sandbox Code Playgroud)

这给了我一个遵循架构的输出:

{
    "Credentials": {
        "AccessKeyId": "someAccessKeyId",
        "SecretAccessKey": "someSecretAccessKey",
        "SessionToken": "someSessionToken",
        "Expiration": "2020-08-04T06:52:13+00:00"
    },
    "AssumedRoleUser": {
        "AssumedRoleId": "idOfTheAssummedRole",
        "Arn": "theARNOfTheRoleIWantToAssume"
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我手动复制和粘贴 , 的值AccessKeyIdSecretAccessKeySessionToken在像这样的一堆导出中:

export AWS_ACCESS_KEY_ID="someAccessKeyId"                                                                                      
export AWS_SECRET_ACCESS_KEY="someSecretAccessKey"
export AWS_SESSION_TOKEN="someSessionToken"
Run Code Online (Sandbox Code Playgroud)

最终承担起这个角色。

我怎么能一次性做到这一点?我的意思是,无需手动干预将aws sts ...命令的输出复制和粘贴到exports.

amazon-web-services aws-cli aws-sts

15
推荐指数
4
解决办法
7304
查看次数

Cloudformation 未能满足约束:成员的长度必须小于或等于 51200

使用 awscli 验证 CloudFormation 模板

aws cloudformation validate-template --template-body file://C:/path/file.yaml
Run Code Online (Sandbox Code Playgroud)

回报

failed to satisfy constraint: Member must have length less than or equal to 51200
Run Code Online (Sandbox Code Playgroud)

有可能简单修复吗?

amazon-web-services aws-cli

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

如何使用aws cli更改对象的内容类型?

我在Amazon S3中存储了几个对象,其内容类型我需要更改text/htmlapplication/rss+xml.我认为应该可以使用复制命令执行此操作,为源和目标指定相同的路径.我正在尝试使用AWS cli工具执行此操作,但我收到此错误:

$ aws s3 cp s3://mybucket/feed/ogg/index.html \
            s3://mybucket/feed/ogg/index.html \
            --content-type 'application/rss+xml'
copy failed: s3://mybucket/feed/ogg/index.html
to s3://mybucket/feed/ogg/index.html
A client error (InvalidRequest) occurred when calling the
CopyObject operation: This copy request is illegal because it is
trying to copy an object to itself without changing the object's
metadata, storage class, website redirect location or encryption
attributes.
Run Code Online (Sandbox Code Playgroud)

如果我为源和目标指定不同的路径,我不会收到错误:

$ aws s3 cp s3://mybucket/feed/ogg/index.html \
            s3://mybucket/feed/ogg/index2.html \
            --content-type 'application/rss+xml'
copy: s3://mybucket/feed/ogg/index.html
to s3://mybucket/feed/ogg/index2.html
Run Code Online (Sandbox Code Playgroud)

即使命令成功完成,index2.html也会使用text/html内容类型创建对象,而不是 …

content-type command-line-interface amazon-s3 aws-cli

14
推荐指数
2
解决办法
9455
查看次数

用于安装AWS CLI工具的Bash脚本

我正在编写一个bash脚本,它将自动安装和配置AWS CLI工具.我可以安装AWS CLI工具但无法配置它.

我的脚本是这样的:

#!/bin/bash


wget https://s3.amazonaws.com/aws-cli/awscli-bundle.zip
unzip awscli-bundle.zip
sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws
./awscli-bundle/install -b ~/bin/aws
./awscli-bundle/install -h

aws configure
AWS Access Key ID [None]: ABCDEFGHIJKLMNOP   ## unable to provide this data
AWS Secret Access Key [None]: xbdwsdADDS/ssfsfa/afzfASADQASAd   ## unable to provide this data
Default region name [None]: us-west-2   ## unable to provide this data
Default output format [None]: json   ## unable to provide this data
Run Code Online (Sandbox Code Playgroud)

我也希望使用这个脚本进行配置.我希望我可以通过脚本提供这些凭据,以防止手动输入.如何才能做到这一点?

linux bash shell amazon-web-services aws-cli

14
推荐指数
1
解决办法
9745
查看次数

无法从cygwin运行'aws'

我正在使用cygwin安装Windows 10并尝试从中进行访问awscli.

我曾经pip install awscli安装过awscli.这个安装awscli.然后我试图运行只是aws为了看它是否已安装,我收到以下错误:

-bash: /cygdrive/c/Program Files/Anaconda2/Scripts/aws: C:\Program: bad interpreter: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我不确定为什么会这样.在这方面的任何帮助都会非常苛刻.

bash cygwin amazon-web-services aws-cli

14
推荐指数
2
解决办法
2831
查看次数

如何使用AWS CLI删除S3存储桶中的多个文件

假设我有一个名为的S3存储桶 x.y.z

在这个桶中,我有数百个文件.但我只想删除2个名为purple.gif和的文件worksheet.xlsx

我可以通过一次调用从AWS命令行工具执行此操作rm吗?

这不起作用:

$ aws s3 rm s3://x.y.z/worksheet.xlsx s3://x.y.z/purple.gif
Unknown options: s3://x.y.z/purple.gif
Run Code Online (Sandbox Code Playgroud)

手册中,您似乎无法按名称明确删除文件列表.有谁知道这样做的方法?我不喜欢使用--recursive旗帜.

amazon-s3 amazon-web-services aws-cli

14
推荐指数
6
解决办法
2万
查看次数

复制到大型目录时,AWS S3 Sync非常慢

使用AWS-CLI将数据同步到S3中的空目录时,几乎是即时的.但是,当同步到一个大目录(几百万个文件夹)时,甚至需要很长时间才能开始上传/同步文件.

有替代方法吗?看起来它试图在同步之前考虑S3目录中的所有文件 - 我不需要它,并且在没有事先检查的情况下上传数据就没问题了.

amazon-s3 bigdata amazon-web-services aws-cli

14
推荐指数
2
解决办法
6623
查看次数

AWS Lambda错误:错误:运行时无法启动:fork / exec / opt / bootstrap:没有此类文件或目录

我正在从AWS Lambda运行以下解决方案,

https://aws.amazon.com/blogs/apn/aws-lambda-custom-runtime-for-php-a-practical-example/

在测试lambda函数时。

sudo aws lambda invoke --function-name php-example-hello --region us-east-1 --log-type Tail --query 'LogResult' --output text --payload '{"name": "World"}' hello-output.txt | base64 --decode
Run Code Online (Sandbox Code Playgroud)

我收到以下错误,

START RequestId: 29f05ee2-a003-45f4-9700-97a9ac33a528 Version: $LATEST
END RequestId: 29f05ee2-a003-45f4-9700-97a9ac33a528
REPORT RequestId: 29f05ee2-a003-45f4-9700-97a9ac33a528  Duration: 54.09 ms      Billed Duration: 100 ms         Memory Size: 128 MB     Max Memory Used: 12 MB
RequestId: 29f05ee2-a003-45f4-9700-97a9ac33a528 Error: Runtime failed to start: fork/exec /opt/bootstrap: no such file or directory
Runtime.ExitError
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激。

php aws-cli aws-lambda php-7.3

14
推荐指数
1
解决办法
608
查看次数