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

Moh*_*lli 5 amazon-ec2 amazon-web-services amazon-iam terraform

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

有没有直接的方法可以将其添加到 terraform 代码的资源中??

iam_instance_profile  = "my-role"
Run Code Online (Sandbox Code Playgroud)

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

hel*_*loV 5

iam_instance_profile  = "my-role"
Run Code Online (Sandbox Code Playgroud)

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

请参阅:授予用户传递角色的权限


Moh*_*lli 2

我按照 @helloV 在上一篇文章中提到的流程使用 terraform/cfn 中的现有角色。

步骤1:创建一个新的自定义策略并添加以下内容。

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

在上面的 json 片段中,相应地更改帐户 ID角色名称

第2步:

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