1

这在我身上发生过很多次,我一生都无法弄清楚为什么。例子:

  • Boto3 脚本:如果我创建一个角色然后尝试假设它,我会收到一个错误。但是如果角色已经创建,服务可以假设它很好。

  • Ansible playbook:如果我运行一个首先创建角色然后尝试分配它们的 playbook,我会收到错误消息。但是,如果我先运行不同的剧本,然后再运行分配角色的剧本,一切都很好。

我试图等待以确保创建角色,但我仍然收到错误消息。错误是:

"An error occurred (InvalidInputException) when calling the CreateCrawler operation: Service is unable to assume role arn:aws:iam::<acc_id>:role/GlueReadS3. Please verify role's TrustPolicy"

奇怪的是,同样的角色可以由 CloudFormation 承担。

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

我应该提到,boto3 错误还返回了 Role ARN(所以我假设它是创建的)并且我get_role事先做了一个来获取 ARN 它也没有工作

4

1 回答 1

1

也许您可以检查 IAM 中的角色,在我的情况下,我以为我创建了一个类似 的角色 arn:aws:iam::<acc_id>:role/GlueReadS3,但后来我去 IAM 并检查,它实际上是arn:aws:iam::<acc_id>:role/service-role/GlueReadS3.

于 2021-05-05T23:25:17.087 回答