Skip to main content

🛡️ AWS EC2 Instance IMDSv2 is not enabled🟢

Logic

Similar Policies

Similar Internal Rules

RulePoliciesFlags
✉️ dec-x-b42fae781

Description

Open File

Description

When enabling the Metadata Service on AWS EC2 instances, users have the option of using either Instance Metadata Service Version 1 (IMDSv1; a request/response method) or Instance Metadata Service Version 2 (IMDSv2; a session-oriented method).

Rationale

Instance metadata is data about your instance that you can use to configure or manage the running instance. Instance metadata is divided into categories, for example, host name, events, and security groups.

When enabling the Metadata Service on AWS EC2 instances, users have the option of using either Instance Metadata Service Version 1 (IMDSv1; a request/response method) or Instance Metadata Service Version 2 (IMDSv2; a session-oriented method). With IMDSv2, every request is now protected by session authentication. A session begins and ends a series of requests that software running on an EC2 instance uses to access the locally-stored EC2 instance metadata and credentials.

... see more

Remediation

Open File

Remediation

Using AWS CloudFormation

  • CloudFormation template (YAML):
AWSTemplateFormatVersion: '2010-09-09'
Description: Enforce IMDSv2 on a specified EC2 instance

Parameters:
InstanceId:
Type: String
Description: EC2 Instance ID to update with IMDSv2 enforcement

Resources:
EnforceIMDSv2:
Type: AWS::EC2::Instance
Properties:
InstanceId: !Ref InstanceId
MetadataOptions:
HttpTokens: required

From Command Line

  1. Run the describe-instances command using appropriate filtering to list the IDs of all the existing EC2 instances currently available in the selected region:
aws ec2 describe-instances --region <region-name> --output table --query "Reservations[*].Instances[*].InstanceId"
  1. The command output should return a table with the requested instance IDs.
  2. Now run the modify-instance-metadata-options command using an instance ID returned at the previous step to update the Instance Metadata Version:
aws ec2 modify-instance-metadata-options --instance-id <instance-id> --http-tokens required --region <region-name>

... [see more](remediation.md)

policy.yaml

Open File

Linked Framework Sections

SectionSub SectionsInternal RulesPoliciesFlagsCompliance
💼 APRA CPG 234 → 💼 36b configuration management —the configuration of information assets minimises vulnerabilities and is defined, assessed, registered, maintained, including when new vulnerabilities and threats are discovered, and applied consistently;11no data
💼 AWS Foundational Security Best Practices v1.0.0 → 💼 [EC2.8] EC2 instances should use Instance Metadata Service Version 2 (IMDSv2)11no data
💼 CIS AWS v2.0.0 → 💼 5.6 Ensure that EC2 Metadata Service only allows IMDSv2 - Level 1 (Automated)11no data
💼 CIS AWS v3.0.0 → 💼 5.6 Ensure that EC2 Metadata Service only allows IMDSv2 - Level 1 (Automated)11no data
💼 CIS AWS v4.0.0 → 💼 5.7 Ensure that the EC2 Metadata Service only allows IMDSv2 (Automated)1no data
💼 CIS AWS v4.0.1 → 💼 5.7 Ensure that the EC2 Metadata Service only allows IMDSv2 (Automated)1no data
💼 CIS AWS v5.0.0 → 💼 5.7 Ensure that the EC2 Metadata Service only allows IMDSv2 (Automated)1no data
💼 CIS AWS v6.0.0 → 💼 6.7 Ensure that the EC2 Metadata Service only allows IMDSv2 (Automated)1no data
💼 Cloudaware Framework → 💼 Secure Access57no data
💼 FedRAMP High Security Controls → 💼 AC-3 Access Enforcement (L)(M)(H)3768no data
💼 FedRAMP High Security Controls → 💼 AC-6 Least Privilege (M)(H)81157no data
💼 FedRAMP Low Security Controls → 💼 AC-3 Access Enforcement (L)(M)(H)68no data
💼 FedRAMP Moderate Security Controls → 💼 AC-3 Access Enforcement (L)(M)(H)68no data
💼 FedRAMP Moderate Security Controls → 💼 AC-6 Least Privilege (M)(H)657no data
💼 NIST CSF v2.0 → 💼 PR.AA-05: Access permissions, entitlements, and authorizations are defined in a policy, managed, enforced, and reviewed, and incorporate the principles of least privilege and separation of duties116no data
💼 NIST CSF v2.0 → 💼 PR.DS-10: The confidentiality, integrity, and availability of data-in-use are protected142no data
💼 NIST CSF v2.0 → 💼 PR.IR-01: Networks and environments are protected from unauthorized logical access and usage95no data
💼 NIST SP 800-53 Revision 5 → 💼 AC-3 Access Enforcement15540no data
💼 NIST SP 800-53 Revision 5 → 💼 AC-3(7) Access Enforcement _ Role-based Access Control14no data
💼 NIST SP 800-53 Revision 5 → 💼 AC-3(15) Access Enforcement _ Discretionary and Mandatory Access Control13no data
💼 NIST SP 800-53 Revision 5 → 💼 AC-6 Least Privilege102350no data
💼 NIST SP 800-53 Revision 5 → 💼 SI-7(12) Software, Firmware, and Information Integrity _ Integrity Verification1921no data
💼 PCI DSS v3.2.1 → 💼 2.2.4 Configure system security parameters to prevent misuse.16no data
💼 PCI DSS v4.0.1 → 💼 2.2.6 System security parameters are configured to prevent misuse.16no data
💼 PCI DSS v4.0 → 💼 2.2.6 System security parameters are configured to prevent misuse.1216no data
💼 SOC 2 → 💼 CC7.1-1 Uses Defined Configuration Standards45no data