使用访问密钥ID和秘密访问S3存储桶

6

是否可以使用访问密钥ID和秘密访问密钥从另一个帐户访问S3存储桶?

我知道这些密钥通常用于API / CLI访问,但我想知道是否可以仅使用这两个密钥从我的帐户访问它。

一种解决方法是在AWS上运行CLI并重复同步两个文件夹。

编辑:如果我没有原始帐户的访问权限,该怎么办? 我有密钥,并想将其添加到第二个帐户中-但无法对第一个帐户进行任何更改。


1
是的,这是可能的。使用的帐户由访问密钥确定。如果您正在使用来自不同帐户的访问密钥,则正在使用该帐户。 - kichik
3个回答

1
可以使用访问密钥ID和秘密访问密钥从另一个帐户访问S3存储桶吗?
是的,如果已经配置。对S3的访问权限取决于您的身份、IAM策略、所需操作以及存储桶的配置(策略、权限、阻止公共访问等)。
您可以阅读文档,了解影响某个请求访问的不同因素:https://docs.aws.amazon.com/AmazonS3/latest/userguide/how-s3-evaluates-access-control.html 要配置跨帐户访问,有三种选择:
- 配置允许来自另一个帐户或该帐户中的主体的某些或所有API操作的存储桶策略。这非常灵活,允许几乎所有S3存储桶操作同时保持安全。 - 配置允许另一个帐户的ACL策略。这是在存储桶策略出现之前的方法,但在某些情况下可能更简单。 - 配置跨帐户IAM角色。这基本上是向另一个AWS帐户提供权限。与其他选项相比,这是最灵活的,因为它可以包括任何操作。
上述3种方法在此文档中有记录:https://aws.amazon.com/premiumsupport/knowledge-center/cross-account-access-s3/ 现在,虽然在文档中使用策略仅用于编程访问,但目前您也可以在控制台中使用它,尽管这不是一个记录的功能。如果您通过存储桶策略进行访问,则可以通过在URL中输入存储桶名称(将BUCKET-NAME替换为您的存储桶名称),简单地在控制台中打开存储桶:https://s3.console.aws.amazon.com/s3/buckets/BUCKET-NAME

另一个问题是,如果您只有 IAM 访问密钥 ID 和密钥,如何访问控制台。要访问控制台,您的 IAM 用户需要密码,否则您将无法使用 IAM 用户,但是如果您拥有足够的权限,您可以为自己设置密码。另外,如果有一个 IAM 角色可以假定(如果您有足够的权限,您可以创建自己的角色),那么您可以使用一个工具来生成使用联合身份验证 API的控制台链接。以下是我知道的一些工具:


1
你可以在类Unix系统上使用aws cli。
WS_ACCESS_KEY_ID='...' AWS_SECRET_ACCESS_KEY='...' aws s3 ls s3://bucket/prefix

0

简短的回答是“是的,这是可能的”。

至于“如何实现?”,有很多选择。您可以使用boto3或您选择的语言中的aws sdk,在lambda、EC2或ECS容器中运行它等。

您甚至可以进一步实现SigV4以签署您的请求(这就是AWS SDK在内部执行的操作)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接