gpt4 book ai didi

amazon-web-services - 对 Elastic Beanstalk 配置设置中的 S3 对象的访问被拒绝

转载 作者:行者123 更新时间:2023-12-05 01:08:56 25 4
gpt4 key购买 nike

我正在尝试在弹性 beanstalk 应用程序配置文件中配置“源”参数。相关来源是我已上传到新 S3 存储桶中的 bz2 文件。例如,创建的存储桶名称为“abc”,文件名为“mysource.tar.bz2”。配置文件中的相关行如下所示:

source: 
/usr/bin/mysource: https://s3-us-west-2.amazonaws.com/abc/mysource.tar.bz2

尝试部署代码时,出现错误,在检查日志时,该文件显示“AccessDenied”。

我已经在 AWS IAM 控制台中创建了一个具有 Amazon EC2 信任关系的实例配置文件(角色),并设置了对所需存储桶的访问权限。

角色中的权限如下所示:
{
"Statement": [
{
"Sid": "Stmt13674962346",
"Action": [
"s3:*"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::abc/*"
]
}
]
}

甚至尝试将资源设置为 *:
"Resource": "*"

但仍然收到 AccessDenied 错误。

如果我通过公开它来更改 s3 文件“mysource.tar.bz2”的权限,它会起作用。

那么,有没有办法让这个工作而不必公开 S3 文件?我的角色权限设置是否不正确?还是有其他方法可以实现这一目标?

最佳答案

无法使用 files 从 Elastic Beanstalk 访问 protected AWS Assets 。或 source键。这些命令以基本方式处理,不从实例元数据中读取,因此它们无法提取您的 AWS 凭证(据我所知)。

我对这个问题的解决方案是创建一个具有适当权限的 IAM 角色,安装最新的 AWS 工具,并使用 commands下载和解压文件的键。关键是自动从实例中提取 AWS 凭证的 AWS 命令​​行工具。

commands:
01-install-awscli:
command: easy_install awscli
02-download-s3-asset:
command: aws s3 cp --region us-east-1 s3://abc/mysource.tar.bz2 .
03-extract-file:
command: tar xvjf mysource.tar.bz2 destination/

命令在项目的源目录中执行,因此根据需要更改路径或使用 cwd用于更改命令运行位置的选项。

关于amazon-web-services - 对 Elastic Beanstalk 配置设置中的 S3 对象的访问被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16339497/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com