如何解决Boto3:调用 client.associate_iam_instance_profile 时 IAM 实例配置文件 ARN 无效
导致此错误的步骤
- 将实例配置文件与 ec2 实例解除关联(成功)
- 将新的实例配置文件关联到 EC2 实例。这失败并出现错误:
Value (arn:aws:iam::1234556:instance-profile/test-instance-profile) for parameter iamInstanceProfile.arn is invalid. Invalid IAM Instance Profile ARN
代码
client.associate_iam_instance_profile(
IamInstanceProfile={
'Arn': 'arn:aws:iam::1234556:instance-profile/test-instance-profile'
},InstanceId=instance_id
)
我在关联之前验证了实例配置文件存在
解决方法
根据评论,trust policy
缺少 IAM 角色中的 EC2
您看到的 InstanceProfile
延迟是有意的;这是为了说明并确保 IAM 服务已完全传播配置文件。对于由此带来的任何不便,我们深表歉意。
AWS::IAM::InstanceProfile resources always take exactly 2 minutes to create
虽然上面的帖子有点老了,AWS 把延迟降到了最低,但它仍然存在。
Invalid IAM Instance Profile name #15341
这也发生在我身上。新创建的配置文件似乎存在一些竞争条件。当我等待一小段时间并重新运行 terraform 时,它会成功。