无需通过 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 访问 [关闭]
无需凭据即可从特定 IP 授予对 AWS S3 存储桶的访问权限