如何在 terraform 中旋转时将现有 IAM 角色设置为新实例

how to set an existing IAM role to a new instance while spinning in terraform

我正在尝试附加在 AWS 中创建的现有角色,但我无法将其添加到 Terraform 代码中。我尝试在实例配置文件中添加角色,但它对我也不起作用。

有什么直接的方法可以将它添加到 terraform 代码中的资源中吗??

iam_instance_profile  = "my-role"

我的角色拥有 ec2 的完全访问权限。

iam_instance_profile  = "my-role"

是将 IAM 实例配置文件分配给实例的正确方法。您可能没有分配实例配置文件的权限。确保 运行 Terraform 脚本拥有 iam:PassRole 权限。它经常被忽视。

参见:Granting a User Permissions to Pass a Role

我按照@helloV 在之前post 中提到的流程使用terraform/cfn 中的现有角色。

Step1:创建新的自定义策略并添加以下内容。

{
    "Version": "2012-10-17",
    "Statement": [{
        "Effect": "Allow",
        "Action": [
            "iam:GetRole",
            "iam:PassRole"
        ],
        "Resource": "arn:aws:iam::<account-id>:role/<role-name>"
    }]
}

在上面的 json 片段中更改 account-id相应的角色名称

第二步:

将新创建的自定义策略附加到现有 IAM 角色。