【问题标题】:Custom IAM instance profile for elastic beanstalk instances fails on S3_MALFORMED_POLICY弹性 beanstalk 实例的自定义 IAM 实例配置文件在 S3_MALFORMED_POLICY 上失败
【发布时间】:2019-09-16 06:29:11
【问题描述】:

我创建了一个新的 iam 角色,我希望我的实例运行,这样我就可以给它特定的权限来访问我的实例需要的其他资源(例如参数存储、它的数据库实例等)。

默认角色 aws-elasticbeanstalk-ec2-role 附加了 4 个策略:AWSElasticBeanstalkWebTier、AmazonSESFullAccess、AWSElasticBeanstalkMulticontainerDocker、AWSElasticBeanstalkWorkerTier。

所以我创建了一个像 my-app-role 这样的角色,它具有相同的 4 个策略以及一个特定于该应用程序的策略。

但是,当我更改 eb 配置(通过控制台)以将这个新角色用于它的实例时,它会旋转一段时间并最终显示此错误,但信息很少: 我注意到有一个名为 elasticbeanstalk-us-east-1-(arn) 的弹性 beanstalk 存储桶,其中提到了默认的弹性 beanstalk 角色,因此我向 my-app-role 添加了另一个策略以授予对该存储桶的访问权限:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:ListBucketVersions",
                "s3:ListBucket",
                "s3:GetObjectVersion"
            ],
            "Resource": [
                "arn:aws:s3:::elasticbeanstalk-us-east-1-(arn)/resources/environments/*",
                "arn:aws:s3:::elasticbeanstalk-us-east-1-(arn)"
            ]
        }
    ]
}

然而,同样的错误发生了。尽管如此,我仍然缺少一些许可。有谁知道您必须做什么才能正确创建自定义 eb 实例角色?

【问题讨论】:

  • 嗨,尼克,您是否在应用程序(Elastic Beanstalk 配置)和笔记本(application.py)中使用了相同的应用程序名称?
  • 我在@app.route 也遇到了问题。请查收:github.com/RubensZimbres/Repo-2018/blob/master/…
  • @Rubens_Zimbres 你好!我没有 application.py,因为这是一个 Django 应用程序。但是该应用程序确实与角色一起工作:aws-elasticbeanstalk-ec2-role 所以我不太清楚应用程序的名称将如何影响实例的 IAM 角色。
  • 你看到这个问题了吗? stackoverflow.com/questions/3344800/…
  • 是的,奇怪的是,当我没有触及单个 s3 策略时,我在 EB 控制台中收到了该错误。 (在我的 q 中,我注意到为了解决这个问题,我确实创建了一个,但它对错误没有影响,而且我创建的 s3 策略不是手动完成的,而是使用策略生成器完成的,所以我不认为我制定的实际政策格式不正确,这不是解决方案)。

标签: amazon-web-services amazon-iam amazon-elastic-beanstalk


【解决方案1】:

我刚刚遇到了上述问题,AWS 支持帮助了我。结果是,当您首次将自定义 IAM 实例配置文件与 Elastic Beanstalk 一起使用时,它会调用其 S3 存储桶(elasticbeanstalk-<region>-<account>;例如elasticbeanstalk-us-east-1-123456789012)并将新的 IAM 角色添加到存储桶的策略中。在我的例子中,存储桶策略是指一个很久以前被删除的测试 IAM 用户,但是这个对不再有效/现有用户的引用导致 S3 抱怨该策略现在无效/“格式错误”。 Elastic Beanstalk 将尝试整整 13 分钟来进行更改(对 S3 存储桶的策略),然后会因“S3_MALFORMED_POLICY”错误而失败。从 Elastic Beanstalk S3 存储桶中删除对不再存在的用户的引用解决了该问题。

【讨论】:

    猜你喜欢
    • 2011-12-24
    • 2016-08-31
    • 1970-01-01
    • 2016-10-01
    • 2018-08-31
    • 2021-03-20
    • 1970-01-01
    • 2018-09-30
    • 1970-01-01
    相关资源
    最近更新 更多