使用 S3 Archive 进行 AWS Opsworks Chef 部署而无需公开存档

使用 S3 Archive 进行 AWS Opsworks Chef 部署而无需公开存档

我正在尝试使用 S3 存档方法在 Opsworks 中进行 Chef 部署。我将 Chef 存档放在 S3 中,并复制了https://s3.us-east-2.amazonaws.com/redacted/redacted.tar.gz。我授予实例使用的实例配置文件对“已编辑”存储桶的完全读/写访问权限。然而,在部署期间,我尝试访问 S3 存档时出现“setup_failed”且日志显示 403 Forbidden。

我发现了一些AWS 文档建议公开该档案。然而我并不想让我的 Chef 代码公开。

为什么即使实例配置文件对档案具有正确的权限,我仍会收到 403 Forbidden 错误?

答案1

如何访问 S3 存储桶中的文件?

  1. 通过 HTTPS 则无法工作而不将文件公开。如果您在 Chef 脚本中执行以下示例,则会出现这种情况:

    wget https://s3.us-east-2.amazonaws.com/redacted/redacted.tar.gz
    
  2. 为了利用IAM 角色你必须使用以下方式下载文件AWS 命令​​行界面。这将获得正确的权限并应该能够下载文件。例如:

    aws s3 cp s3://redacted/redacted.tar.gz .
    

    这应该可行。

希望有帮助:)

答案2

我以前为了让它工作而拼了命。在初始启动期间尝试访问存储桶总是会失败。我认为这与启动时间有关,Chef 要求提供文件该实例有权利这样做。

遗憾的是,我放弃了 Opsworks Chef 解决方案。(这甚至是在与他们的一位 Opsworks 技术人员交谈之后!)我已开始测试 Opsworks Chef Automate 解决方案。

相关内容