aws_iam_role
Provides an IAM role.
Example Usage
resource "aws_iam_role" "test_role" {
  name = "test_role"
  assume_role_policy = <<EOF
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": "sts:AssumeRole",
      "Principal": {
        "Service": "ec2.amazonaws.com"
      },
      "Effect": "Allow",
      "Sid": ""
    }
  ]
}
EOF
}
Argument Reference
The following arguments are supported:
- 
name- (Optional, Forces new resource) The name of the role. If omitted, Terraform will assign a random, unique name.
- 
name_prefix- (Optional, Forces new resource) Creates a unique name beginning with the specified prefix. Conflicts withname.
- 
assume_role_policy- (Required) The policy that grants an entity permission to assume the role.
NOTE: This
assume_role_policyis very similar but slightly different than just a standard IAM policy and cannot use anaws_iam_policyresource. It can however, use anaws_iam_policy_documentdata source, see example below for how this could work.
- 
force_detach_policies- (Optional) Specifies to force detaching any policies the role has before destroying it. Defaults tofalse.
- 
path- (Optional) The path to the role. See IAM Identifiers for more information.
- 
description- (Optional) The description of the role.
- 
max_session_duration- (Optional) The maximum session duration (in seconds) that you want to set for the specified role. If you do not specify a value for this setting, the default maximum of one hour is applied. This setting can have a value from 1 hour to 12 hours.
Attributes Reference
In addition to all arguments above, the following attributes are exported:
- 
arn- The Amazon Resource Name (ARN) specifying the role.
- 
create_date- The creation date of the IAM role.
- 
unique_id- The stable and unique string identifying the role.
- 
name- The name of the role.
- 
description- The description of the role.
Example of Using Data Source for Assume Role Policy
data "aws_iam_policy_document" "instance-assume-role-policy" {
  statement {
    actions = ["sts:AssumeRole"]
    principals {
      type        = "Service"
      identifiers = ["ec2.amazonaws.com"]
    }
  }
}
resource "aws_iam_role" "instance" {
  name               = "instance_role"
  path               = "/system/"
  assume_role_policy = "${data.aws_iam_policy_document.instance-assume-role-policy.json}"
}
Import
IAM Roles can be imported using the name, e.g.
$ terraform import aws_iam_role.developer developer_name
    © 2018 HashiCorpLicensed under the MPL 2.0 License.
    https://www.terraform.io/docs/providers/aws/r/iam_role.html