aws_instance should activate session tokens for Instance Metadata Service.

Explanation

IMDS v2 (Instance Metadata Service) introduced session authentication tokens which improve security when talking to IMDS. By default aws_instance resource sets IMDS session auth tokens to be optional. To fully protect IMDS you need to enable session tokens by using metadata_options block and its http_tokens variable set to required.

Possible Impact

Instance metadata service can be interacted with freely

Suggested Resolution

Enable HTTP token requirement for IMDS

Insecure Example

The following example will fail the aws-ec2-enforce-http-token-imds check.

resource "aws_instance" "bad_example" {
  ami           = "ami-005e54dee72cc1d00"
  instance_type = "t2.micro"
}

Secure Example

The following example will pass the aws-ec2-enforce-http-token-imds check.

resource "aws_instance" "good_example" {
  ami           = "ami-005e54dee72cc1d00"
  instance_type = "t2.micro"
  metadata_options {
	http_tokens = "required"
  }	
}

Getting Started
Provider Checks
Config
GitHub Actions