这在我身上发生过很多次,我一生都无法弄清楚为什么。例子:
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 它也没有工作