首页 > 解决方案 > 尝试将 ec2 实例与 IAM 角色关联的 Boto3 适用于 Name 但不适用于 arn

问题描述

所以我一直在试图弄清楚如何将策略附加到我的 EC2 实例,以便我可以使用 SSM 功能。这样做时,我尝试了:

response = ec2_client.associate_iam_instance_profile(
    IamInstanceProfile ={
        'Arn': 'arn:aws:iam::808608558017:role/AmazonSSMRoleForInstancesQuickSetup'
        'Name': 'AmazonSSMRoleForInstancesQuickSetup'
    },
    InstanceId= ID
)

引发以下错误:

ClientError: An error occurred (InvalidParameterValue) when calling the AssociateIamInstanceProfile operation: Value (arn:aws:iam::808608558017:role/AmazonSSMRoleForInstancesQuickSetup) for parameter iamInstanceProfile.arn is invalid. Invalid IAM Instance Profile ARN

我复制粘贴了arn。

但,

response = ec2_client.associate_iam_instance_profile(
    IamInstanceProfile ={
        'Name': 'AmazonSSMRoleForInstancesQuickSetup'
    },
    InstanceId= ID
)

工作正常。

相同的文档似乎表明前者应该工作而不是后者。我有点困惑为什么:)

标签: python-3.xamazon-ec2boto3

解决方案


IAM 角色 ARN ≠ 实例配置文件 ARN,因此只需使用名称即可


推荐阅读