Table Of Contents


User Guide

First time using the AWS CLI? See the User Guide for help getting started.

[ aws . ec2 ]



Describes the specified attribute of the specified AMI. You can specify only one attribute at a time.

See also: AWS API Documentation

See 'aws help' for descriptions of global parameters.


--attribute <value>
--image-id <value>
[--dry-run | --no-dry-run]
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]


--attribute (string)

The AMI attribute.

Note : Depending on your account privileges, the blockDeviceMapping attribute may return a Client.AuthFailure error. If this happens, use DescribeImages to get information about the block device mapping for the AMI.

Possible values:

  • description
  • kernel
  • ramdisk
  • launchPermission
  • productCodes
  • blockDeviceMapping
  • sriovNetSupport

--image-id (string)

The ID of the AMI.

--dry-run | --no-dry-run (boolean)

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation . Otherwise, it is UnauthorizedOperation .

--cli-input-json (string) Performs service operation based on the JSON string provided. The JSON string follows the format provided by --generate-cli-skeleton. If other arguments are provided on the command line, the CLI values will override the JSON-provided values. It is not possible to pass arbitrary binary values using a JSON-provided value as the string will be taken literally.

--generate-cli-skeleton (string) Prints a JSON skeleton to standard output without sending an API request. If provided with no value or the value input, prints a sample input JSON that can be used as an argument for --cli-input-json. If provided with the value output, it validates the command inputs and returns a sample output JSON for that command.

See 'aws help' for descriptions of global parameters.


To describe the launch permissions for an AMI

This example describes the launch permissions for the specified AMI.


aws ec2 describe-image-attribute --image-id ami-5731123e --attribute launchPermission


    "LaunchPermissions": [
            "UserId": "123456789012"
    "ImageId": "ami-5731123e",

To describe the product codes for an AMI

This example describes the product codes for the specified AMI. Note that this AMI has no product codes.


aws ec2 describe-image-attribute --image-id ami-5731123e --attribute productCodes


    "ProductCodes": [],
    "ImageId": "ami-5731123e",


BlockDeviceMappings -> (list)

The block device mapping entries.


Describes a block device mapping.

DeviceName -> (string)

The device name (for example, /dev/sdh or xvdh ).

VirtualName -> (string)

The virtual device name (ephemeral N). Instance store volumes are numbered starting from 0. An instance type with 2 available instance store volumes can specify mappings for ephemeral0 and ephemeral1 . The number of available instance store volumes depends on the instance type. After you connect to the instance, you must mount the volume.

NVMe instance store volumes are automatically enumerated and assigned a device name. Including them in your block device mapping has no effect.

Constraints: For M3 instances, you must specify instance store volumes in the block device mapping for the instance. When you launch an M3 instance, we ignore any instance store volumes specified in the block device mapping for the AMI.

Ebs -> (structure)

Parameters used to automatically set up EBS volumes when the instance is launched.

DeleteOnTermination -> (boolean)

Indicates whether the EBS volume is deleted on instance termination.

Iops -> (integer)

The number of I/O operations per second (IOPS) that the volume supports. For io1 volumes, this represents the number of IOPS that are provisioned for the volume. For gp2 volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting. For more information, see Amazon EBS Volume Types in the Amazon Elastic Compute Cloud User Guide .

Constraints: Range is 100-16,000 IOPS for gp2 volumes and 100 to 64,000IOPS for io1 volumes in most Regions. Maximum io1 IOPS of 64,000 is guaranteed only on Nitro-based instances . Other instance families guarantee performance up to 32,000 IOPS. For more information, see Amazon EBS Volume Types in the Amazon Elastic Compute Cloud User Guide .

Condition: This parameter is required for requests to create io1 volumes; it is not used in requests to create gp2 , st1 , sc1 , or standard volumes.

SnapshotId -> (string)

The ID of the snapshot.

VolumeSize -> (integer)

The size of the volume, in GiB.

Default: If you're creating the volume from a snapshot and don't specify a volume size, the default is the snapshot size.

Constraints: 1-16384 for General Purpose SSD (gp2 ), 4-16384 for Provisioned IOPS SSD (io1 ), 500-16384 for Throughput Optimized HDD (st1 ), 500-16384 for Cold HDD (sc1 ), and 1-1024 for Magnetic (standard ) volumes. If you specify a snapshot, the volume size must be equal to or larger than the snapshot size.

VolumeType -> (string)

The volume type. If you set the type to io1 , you must also set the Iops property.

Default: standard

Encrypted -> (boolean)

Indicates whether the encryption state of an EBS volume is changed while being restored from a backing snapshot. The default effect of setting the Encrypted parameter to true through the console, API, or CLI depends on the volume's origin (new or from a snapshot), starting encryption state, ownership, and whether account-level encryption is enabled. Each default case can be overridden by specifying a customer master key (CMK) with the KmsKeyId parameter in addition to setting Encrypted to true . For a complete list of possible encryption cases, see Amazon EBS Encryption in the Amazon Elastic Compute Cloud User Guide .

In no case can you remove encryption from an encrypted volume.

Encrypted volumes can only be attached to instances that support Amazon EBS encryption. For more information, see Supported Instance Types .

KmsKeyId -> (string)

Identifier (key ID, key alias, ID ARN, or alias ARN) for a user-managed CMK under which the EBS volume is encrypted.

This parameter is only supported on BlockDeviceMapping objects called by RunInstances , RequestSpotFleet , and RequestSpotInstances .

NoDevice -> (string)

Suppresses the specified device included in the block device mapping of the AMI.

ImageId -> (string)

The ID of the AMI.

LaunchPermissions -> (list)

The launch permissions.


Describes a launch permission.

Group -> (string)

The name of the group.

UserId -> (string)

The AWS account ID.

ProductCodes -> (list)

The product codes.


Describes a product code.

ProductCodeId -> (string)

The product code.

ProductCodeType -> (string)

The type of product code.

Description -> (structure)

A description for the AMI.

Value -> (string)

The attribute value. The value is case-sensitive.

KernelId -> (structure)

The kernel ID.

Value -> (string)

The attribute value. The value is case-sensitive.

RamdiskId -> (structure)

The RAM disk ID.

Value -> (string)

The attribute value. The value is case-sensitive.

SriovNetSupport -> (structure)

Indicates whether enhanced networking with the Intel 82599 Virtual Function interface is enabled.

Value -> (string)

The attribute value. The value is case-sensitive.