弹性beantalk实例的自定义IAM实例配置文件在S3_MALFORMED_POLICY上失败

问题描述 投票:1回答:1

我创建了一个新的iam角色,希望我的实例可以以此身份运行,以便我可以为它赋予实例所需的其他资源(例如,参数存储,数据库实例等)的特定权限。

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

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

但是,当我更改eb配置(通过控制台)以在实例中使用此新角色时,它旋转一段时间,最终显示的错误信息很少:enter image description here我注意到有一个名为Elasticbeanstalk-us-east-1-(arn)的弹性beantalk的存储桶,其中提到了默认的Elastic beantalk角色,因此我在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实例角色必须做什么吗?

amazon-web-services amazon-iam amazon-elastic-beanstalk
1个回答
0
投票

我刚刚遇到上述问题,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存储桶中删除对不再存在的用户的引用已解决了该问题。

© www.soinside.com 2019 - 2024. All rights reserved.