无需通过 S3 控制台即可将 AWS S3 存储桶内容下载到本地

Posted

技术标签:

【中文标题】无需通过 S3 控制台即可将 AWS S3 存储桶内容下载到本地【英文标题】:Downloading AWS S3 bucket contents to on-prem without going through S3 console 【发布时间】:2020-12-28 12:35:13 【问题描述】:

我目前正在使用 S3 控制台(Web 界面)访问我在 S3 存储桶中创建的文件

鉴于我分配了 IAM 角色,有没有办法将我的 S3 存储桶的内容下载到我的本地计算机,而不使用 S3 控制台和访问密钥?

谢谢

编辑:

我确实在 EC2 实例上安装了 AWS CLI,并为其分配了 IAM 角色。 EC2 实例似乎无法“看到”我的本地机器,以便我能够指定路径。所以cp 命令不起作用。有没有办法将文件复制到我的本地机器上?

我是新手,所以如果这是一个非常愚蠢的问题,我提前道歉。

【问题讨论】:

您可以使用 AWS CLI。你试过吗? “我分配了一个 IAM 角色”是什么意思?分配给什么 @JohnRotenstein 它已分配给我的用户 ID。我的应用程序将使用该用户 ID 访问 S3 存储桶 如果 Amazon S3 中的数据是私有的,您将需要与您的 IAM 用户关联的访问密钥和秘密密钥。使用 IAM 角色的唯一方法是使用您的 IAM 用户“代入”该角色。因此,您仍然需要 IAM 用户的访问密钥和秘密密钥。 【参考方案1】:

您可以安装和使用AWS Command-Line Interface (CLI)。

它具有诸如aws s3 cp 之类的命令,可以将文件复制到/从 Amazon S3 中复制,aws s3 sync 可以通过仅复制新的/更改的文件来同步整个文件夹。

运行 AWS CLI 需要一组 AWS 凭证。在您自己的计算机上运行 AWS CLI 时,您需要来自 IAM 用户 的凭证。您可以使用aws configure 命令存储它们。

如果您在 Amazon EC2 实例上运行 AWS CLI,您可以将 IAM 角色 分配给 EC2 实例,而不是提供凭证。这将为它提供访问 Amazon S3 的凭据。

【讨论】:

抱歉,我没有提到我在 EC2 实例上运行 AWS CLI。我确实为实例分配了一个 IAM 角色。但是,我似乎无法使用cp 命令将文件复制到本地计算机。我可以在 EC2 实例的文件系统中移动/复制文件。 您需要在自己的计算机上运行 AWS CLI,而不是在 Amazon EC2 实例上。这是因为您的计算机无法从 Internet 访问。您需要使用自己的计算机下载文件。 啊我现在明白了。谢谢。

以上是关于无需通过 S3 控制台即可将 AWS S3 存储桶内容下载到本地的主要内容,如果未能解决你的问题,请参考以下文章

对 Amazon S3 存储桶的 FTP/SFTP 访问 [关闭]

AWS S3在两个存储桶之间复制文件和文件夹

无需凭据即可从特定 IP 授予对 AWS S3 存储桶的访问权限

查找谁在联合 AWS 账户中创建了 s3 存储桶

AWS S3 CLI - 如何使用存储桶上设置的所有当前策略获取 JSON?

[AWS][安全] S3存储桶策略-Bucket Policy