尝试使用 AWS CLI 提取 S3 存储桶的内容时,我得到以下信息:
aws s3 cp --region us-east-1 s3://s3.amazonaws.com/my-bucket . --recursive
A client error (AccessDenied) occurred when calling the ListObjects operation: Access Denied
Completed 1 part(s) with ... file(s) remaining
Run Code Online (Sandbox Code Playgroud)
使用aws s3 sync同样失败。
用户政策是:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": ["arn:aws:s3:::*"]
}
]
}
Run Code Online (Sandbox Code Playgroud)
(我也尝试过各种限制较少的政策,但都无济于事)。
我已经尝试了一个空桶策略,还有这个桶策略:
{
"Id": "Policy1357935677554",
"Statement": [
{
"Sid": "Stmt1357935647218",
"Action": [
"*"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::my-bucket",
"Principal": {
"AWS": [
"arn:aws:iam::XXXXXXXXXX:user/my-user"
]
}
}, …Run Code Online (Sandbox Code Playgroud) 使用 aws-cli 客户端 ( https://github.com/aws/aws-cli ),有没有办法使用日期范围过滤器查找实例?或者使用“早于 X 日期”或“最后 X 天”过滤器?
似乎唯一与日期相关的过滤器是使用字符串通配符指定确切日期或部分日期。例如,我发现指定日期如下有效:
aws ec2 describe-instances --filters "Name=launch-time,Values=2015-03\*"
Run Code Online (Sandbox Code Playgroud)
例如,这会在 2015 年 3 月启动所有实例。
我想要的相当于这个 POSIX“查找”命令,“查找过去 30 天的所有内容”:
find . -mtime -30
Run Code Online (Sandbox Code Playgroud) 我正在开发一个简单的 python 脚本来向安全组添加规则,我想知道 boto3 中可用的两种方法之间有什么区别:authorize_security_group_ingress(**kwargs)和authorize_ingress(**kwargs)?
描述相同:“向安全组添加一个或多个入口规则”
我正在尝试创建一个命令,该命令将在推出新代码时使 CloudFront 分配无效。这是为了解决推出的新 HTML 不会在 24 小时内出现在我的网络应用程序上的问题。这个想法来自这个AWS CLI 命令参考
这是命令:
aws cloudfront create-invalidation --distribution-id XXXXXXXXXXXXXX --invalidation-batch file://invbatch.json
Run Code Online (Sandbox Code Playgroud)
这是我运行命令时得到的响应:
调用 CreateInvalidation 操作时出现客户端错误 (AccessDenied):用户:arn:aws:iam::XXXXXXXXXXXXXXX:user/cats-kittens-beanstalk-user is notauthorized to perform: cloudfront:CreateInvalidation
知道为什么会这样吗?我知道即使用户被授权在某些情况下运行命令,AWS 也会抛出此访问被拒绝 - 请参阅此处。
我和我的团队最近遇到了一个关于 AWS CLI 的奇怪问题。我们正在尝试使用 CLI 来启动和停止多个 EC2 实例。在单个实例上测试命令时,我们注意到可以使用 CLI 来“停止实例”,但无法使用 CLI 来“启动实例”。我们可以从 AWS 控制台启动实例而不会出现任何问题。
尝试从 CLI 启动实例时,状态会从“已停止”切换到“待处理”,但不久之后又会切换回“已停止”。该状态的原因被描述为“Client.InternalError: Client error on launch”。使用的访问密钥可以访问停止和启动实例(使用试运行选项运行显示了这一点)。
有任何想法吗?
有没有办法过滤包含特定字符串(例如abcd)的公共 AMI ?
命令:
aws ec2 describe-images --filters Name=name,Values=abcd
Run Code Online (Sandbox Code Playgroud)
仅返回那些完全匹配的 AMI Name=abcd
我希望我的 bash 脚本能够检测是否已经存在具有特定名称的 AWS RDS 实例。
这是我尝试过的:
#!/usr/bin/env bash
DBINSTANCEIDENTIFIER=greatdb
EXISTINGINSTANCE=$(aws rds describe-db-instances \
--db-instance-identifier="$DBINSTANCEIDENTIFIER" \
--输出文本\
)
我希望得到一个空列表,或者结果为零 - 但我收到一条错误消息:
调用 DescribeDBInstances 操作时发生错误 (DBInstanceNotFound):未找到 DBInstance greatdb。
有谁知道如何在没有错误消息的情况下正确找出实例是否存在?
我一直在研究使用 AWS cli 进行数据完整性检查,以验证备份是否已从 Linux 文件服务器正确传输到 AWS s3。同样,我想验证将文件从备份恢复到 Linux 文件服务器时是否也正确传输。
我检查了 S3 上与对象一起存储的 etag,因为它似乎是 md5sum。但是,如果在大文件的情况下将文件作为分段传输,则 etag 将不再有效。
但在我进一步尝试对每次刚刚同步到 S3 的内容进行 MD5sum 之前,真的有必要这样做吗?当通过互联网在 Linux 文件系统之间使用 rsync 时,对传输的文件进行 md5sum 来验证它们并不常见。因为假设我认为 rsync 已经解决了这个问题?
所以我想知道 AWS clisync 是否已经为我们处理了数据完整性检查?
我正在尝试找到一个带有具有Name某些价值的标签的负载均衡器。
aws elb describe-load-balancers --query 'LoadBalancerDescriptions[*].LoadBalancerName'
Run Code Online (Sandbox Code Playgroud)
我正在迭代结果并运行:
aws elb describe-tags \
--load-balancer-names some-load-balancer \
--query 'TagDescriptions[?Tags[?Key==`Name`].Value == `my-desired-name-value`]'
Run Code Online (Sandbox Code Playgroud)
即使这样,结果始终为空:
aws elb describe-tags \
--load-balancer-names some-load-balancer \
--query 'TagDescriptions[].Tags[?Key==`Name`].Value'
Run Code Online (Sandbox Code Playgroud)
确实返回my-desired-name-value。我想仅使用 JMESPath 获取标签的整个对象,我不能jq在这里使用。
期望的输出:
{
"TagDescriptions": [
{
"LoadBalancerName": "some-load-balancer",
"Tags": [
{
"Key": "SomeTag",
"Value": "SomeValue"
},
{
"Key": "Name",
"Value": "my-desired-name-value"
}
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
我的JMESPath查询出了什么问题?
在我的场景中,我有一些未加密的旧 EBS 卷。为了满足新的公司安全措施,所有数据都需要加密,因此我需要制定一个计划,以破坏性最小的方式加密未加密的数据(理想情况下没有停机)?
谁能建议实现此目标的最佳方法是什么?
encryption amazon-ec2 amazon-ebs amazon-web-services aws-cli
aws-cli ×10
amazon-ec2 ×2
amazon-s3 ×2
amazon-ami ×1
amazon-ebs ×1
amazon-rds ×1
bash ×1
boto ×1
encryption ×1
md5 ×1
python ×1
rsync ×1