这种情况在我身上发生过多次,但我一生都无法弄清楚为什么。示例:
Boto3 脚本:如果我创建一个角色然后尝试假设它,我会收到错误。但如果角色已经创建,服务就可以很好地承担它。
Ansible 剧本:如果我运行一个剧本,首先创建角色,然后尝试分配它们,我会收到错误。但如果我首先运行不同的剧本,然后运行分配角色的剧本,一切都很好。
我尝试等待以确保角色已创建,但仍然收到错误。错误是:
"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 错误还返回了角色 ARN(因此我假设它已创建),而且我事先创建了一个 get_role
来获取 ARN,但它也不起作用
最佳答案
也许你可以检查 IAM 中的角色,就我而言,我想我创建了一个类似的角色
arn:aws:iam::<acc_id>:role/GlueReadS3
,但后来我去 IAM 查了一下,实际上是 arn:aws:iam::<acc_id>:role/service-role/GlueReadS3
.
关于amazon-web-services - AWS IAM |无法承担在同一 "session"上创建的角色 (InvalidInputException),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59454019/