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

时间:2018-05-01 15:46:05

标签: amazon-web-services amazon-ec2 terraform amazon-iam

我正在尝试附加在AWS中创建的现有角色,但我无法在Terraform代码中添加它。我试图在实例配置文件中添加该角色,但它对我来说都没有用。

有没有直接的方法将它添加到terraform代码的资源中。??

iam_instance_profile  = "my-role"

my-role拥有ec2的完全访问权限。

2 个答案:

答案 0 :(得分:2)

iam_instance_profile  = "my-role"

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

请参阅:Granting a User Permissions to Pass a Role

答案 1 :(得分: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>"
    }]
}

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

第2步:

将新创建的自定义策略与现有IAM角色相关联。