AWS Trust Policy已禁止字段Principal

Mat*_*rix 15 amazon-web-services amazon-iam

我正在尝试创建IAM角色并根据使用AWS CLI将AWS IAM角色附加到现有Amazon EC2实例将其分配给EC2实例.

该政策如下所示:

{
 "Version": "2012-10-17",
 "Statement": [
 {
    "Effect": "Allow",
    "Principal": {
    "Service": "ec2.amazonaws.com"
    },
    "Action": "sts:AssumeRole"
  }
 ]
Run Code Online (Sandbox Code Playgroud)

}

但它给出了这个错误:

This policy contains the following error: Has prohibited field Principal
Run Code Online (Sandbox Code Playgroud)

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

任何帮助,将不胜感激.

Joh*_*ein 11

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

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

它将为您创建信任策略。

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

  • 创建角色后,单击它,然后您会看到一个“信任关系”选项卡,您可以在其中放置策略 (7认同)
  • 信任策略与标准策略是分开的-如果您不知道单独的字段,这会使您感到困惑。 (3认同)

小智 7

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

    {
      "Version": "2012-10-17",
      "Statement": [
      {
         "Effect": "Allow",
         "Principal": {
           "Service": [
           "ec2.amazonaws.com",
           "lambda.amazonaws.com"
           ]
          },
         "Action": "sts:AssumeRole"
       }
     ] 
   }
Run Code Online (Sandbox Code Playgroud)