AWS Trust Policy已禁止字段Principal

时间:2017-08-03 08:18:03

标签: amazon-web-services amazon-iam

我尝试创建IAM角色并根据Attach an AWS IAM Role to an Existing Amazon EC2 Instance by Using the AWS CLI将其分配给EC2实例。

政策如下所示:

phpunit:
  stage: test
  script:
    - docker run -w /var/www -v $(pwd):/var/custom --rm --volumes-from {image_from other build} phpunit/phpunit:4.8.5

}

但它给出了这个错误:

{
 "Version": "2012-10-17",
 "Statement": [
 {
    "Effect": "Allow",
    "Principal": {
    "Service": "ec2.amazonaws.com"
    },
    "Action": "sts:AssumeRole"
  }
 ]

这里有一个类似的问题,但它无法解决这个问题。

任何帮助都将不胜感激。

3 个答案:

答案 0 :(得分:9)

创建服务角色的最简单方法是:

  • 转到IAM控制台
  • 点击角色
  • 创建新角色
  • 选择 Amazon EC2 服务角色
  • 然后附上您的政策

它将为您创建信任政策。

请注意,信任策略存储在与实际策略(分配权限的位)不同的位置。基于错误消息,您似乎将信任策略置于正常位置,因为角色不需要原则(但信任策略可以)。

答案 1 :(得分:1)

在尝试更新“信任关系”或“信任策略”时遇到相同的问题。 “校长”仅在“信任策略”中起作用。您可能正在错误地更新属于“权限”标签下的常规策略。尝试如下更新“信任关系”标签下的策略:

    {
      "Version": "2012-10-17",
      "Statement": [
      {
         "Effect": "Allow",
         "Principal": {
           "Service": [
           "ec2.amazonaws.com",
           "lambda.amazonaws.com"
           ]
          },
         "Action": "sts:AssumeRole"
       }
     ] 
   }

答案 2 :(得分:1)

在存储桶中写入策略->权限->存储桶策略->保存

注意:请勿在iam控制台中编写策略,并且存储区和云监视区域必须相同。其他地区将无法正常工作。

使用以下政策

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "logs.YOUR-CLOUD-WATCH-REGION.amazonaws.com"
            },
            "Action": "s3:GetBucketAcl",
            "Resource": "arn:aws:s3:::YOUR-BUCKET-NAME"
        },
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "logs.YOUR-CLOUD-WATCH-REGION.amazonaws.com"
            },
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::YOUR-BUCKET-NAME/*",
            "Condition": {
                "StringEquals": {
                    "s3:x-amz-acl": "bucket-owner-full-control"
                }
            }
        }
    ]
}