无法下载 AWS CodeDeploy 代理安装文件



我正在尝试在我的 Amazon Linux 中下载 AWS Codedeploy 代理文件。我按照 http://docs.aws.amazon.com/codedeploy/latest/userguide/how-to-run-agent.html 中提到的说明,对于 Amazon Linux,创建了适当的实例配置文件、服务角色等。一切都是最新的(亚马逊 Linux,CLI 包,它是一个全新的实例,我已经尝试了至少 3 个全新的实例,结果相同)。所有实例都具有完全的出站互联网访问权限。

但是以下从 S3 下载安装的语句总是失败,

aws s3 cp s3://aws-codedeploy-us-east-1/latest/install . --region us-east-1

有错误,调用 HeadObject 操作时发生客户端错误 (403):禁止已完成 1 部分 ...剩余文件

任何人都可以帮助我解决此错误吗?

根据 IAM 实例配置文件的 Codedeploy 文档,我想出了问题所在

http://docs.aws.amazon.com/codedeploy/latest/userguide/how-to-create-iam-instance-profile.html

需要为您的 IAM 实例配置文件授予以下权限。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": [
        "s3:Get*",
        "s3:List*"
      ],
      "Effect": "Allow",
      "Resource": "*"
    }
  ]
}

但我将资源限制在我的代码存储桶中,因为我不希望我的实例直接访问其他存储桶。但事实证明,我还需要为 aws-codedeploy-us-east-1/* s3 资源授予额外的权限,以便能够下载代理。这在为 Codedeploy 设置 IAM 实例配置文件的文档中不是很清楚。

更有效的限制性策略:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:Get*",
                "s3:List*"
            ],
            "Resource": [
                "arn:aws:s3:::aws-codedeploy-us-east-1/*",
                "arn:aws:s3:::aws-codedeploy-us-west-1/*",
                "arn:aws:s3:::aws-codedeploy-us-west-2/*",
                "arn:aws:s3:::aws-codedeploy-ap-south-1/*",
                "arn:aws:s3:::aws-codedeploy-ap-northeast-2/*",
                "arn:aws:s3:::aws-codedeploy-ap-southeast-1/*",
                "arn:aws:s3:::aws-codedeploy-ap-southeast-2/*",
                "arn:aws:s3:::aws-codedeploy-ap-northeast-1/*",
                "arn:aws:s3:::aws-codedeploy-eu-central-1/*",
                "arn:aws:s3:::aws-codedeploy-eu-west-1/*",
                "arn:aws:s3:::aws-codedeploy-sa-east-1/*"
            ]
        }
    ]
}

相关内容

  • 没有找到相关文章

最新更新