

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用執行個體中繼資料管理您的 EC2 執行個體
<a name="ec2-instance-metadata"></a>

*執行個體中繼資料* 是關於您執行個體的資料，您可以用來設定或管理執行中的執行個體。執行個體中繼資料包括下列項目：

**執行個體中繼資料屬性**  
執行個體中繼資料屬性會分為幾個[類別](#instancedata-data-categories)，例如主機名稱、事件及安全群組。

**動態資料**  
動態資料為執行個體啟動時產生的中繼資料，例如執行個體身分文件。如需詳細資訊，請參閱[動態資料分類](#dynamic-data-categories)。

**使用者資料**  
您也可以使用執行個體中繼資料，存取您在啟動執行個體時指定的*使用者資料*。例如，您可以指定設定您執行個體的參數，或是包含簡單的指令碼。您也可以建立一般 AMI 並使用使用者資料，修改啟動時提供的組態檔案。例如，如果您執行不同小型企業的 Web 伺服器，它們全部都可以使用相同的一般 AMI，並從您在啟動時於使用者資料中指定的 Amazon S3 儲存貯體擷取其內容。若要隨時新增客戶，為客戶建立儲存貯體、新增其內容，以及利用使用者資料中提供給程式碼的唯一儲存貯體名稱來啟動 AMI。如果您使用相同的 `RunInstances` 呼叫啟動多個執行個體，則該次保留的所有執行個體均可取得使用者資料。屬於相同保留的每個執行個體都有唯一的 `ami-launch-index` 號碼，可讓您寫入能控制執行個體作業的程式碼。例如，第一個主機可能會選取本身做為叢集中的原始節點。如需詳細的 AMI 啟動範例，請參閱 [識別在單一請求中啟動的每個執行個體](AMI-launch-index-examples.md)。

**重要**  
雖然您只能在執行個體內部存取執行個體中繼資料和使用者資料，資料並未受到驗證或密碼編譯法保護。可直接存取執行個體的任何人，以及可能在該執行個體上執行的任何軟體，都能檢視其中繼資料。因此，您不應該將敏感性資料 (例如密碼或長期加密金鑰) 儲存為使用者資料。

**Topics**
+ [執行個體中繼資料分類](#instancedata-data-categories)
+ [動態資料分類](#dynamic-data-categories)
+ [存取 EC2 執行個體的執行個體中繼資料](instancedata-data-retrieval.md)
+ [設定執行個體中繼資料服務選項](configuring-instance-metadata-options.md)
+ [當使用使用者資料輸入啟動 EC2 執行個體時執行命令](user-data.md)
+ [識別在單一請求中啟動的每個執行個體](AMI-launch-index-examples.md)

## 執行個體中繼資料分類
<a name="instancedata-data-categories"></a>

執行個體中繼資料屬性分為數種類別。若要擷取執行個體中繼資料屬性，請在請求中指定類別，回應中即會傳回中繼資料。

發佈新類別時，將會使用新版本編號建立新的執行個體中繼資料建置。在下表中，**Version when category was released** (類別發佈時的版本) 資料欄指定了發佈執行個體中繼資料類別時的建置版本。為避免每次 Amazon EC2 發佈新的執行個體中繼資料建置時都必須更新您的程式碼，請在中繼資料請求中使用 `latest`，而不是版本編號。如需詳細資訊，請參閱 [取得執行個體中繼資料的可用版本](configuring-instance-metadata-service.md#instance-metadata-ex-1)。

Amazon EC2 發行新的執行個體中繼資料類別時，新類別的執行個體中繼資料可能無法用於現有的執行個體。使用 [Nitro 型執行個體](instance-types.md#instance-hypervisor-type)時，您只能擷取啟動時可用類別的執行個體中繼資料。對於使用 Xen hypervisor 的執行個體，您可以[停止然後啟動](Stop_Start.md)執行個體，以更新執行個體可用的類別。

下表列出執行個體中繼資料的分類。下表中的某些類別名稱包含對您的執行個體而言唯一的資料預留位置。例如，{{mac}} 代表網路介面的 MAC 地址。擷取執行個體中繼資料時，必須使用實際的值取代預留位置。


| 類別 | 描述 | 類別發佈時的版本 | 
| --- | --- | --- | 
| ami-id  | 用於啟動執行個體的 AMI ID。 | 1.0 | 
| ami-launch-index  | 如果您使用相同的 RunInstances 呼叫啟動多個執行個體，此值會指出每個執行個體的啟動順序。第一個啟動的執行個體值為 0。如果您使用自動擴展或 EC2 機群啟動執行個體，此值一律為 0。 | 1.0 | 
| ami-manifest-path  | 指向 Amazon S3 中 AMI 資訊清單檔案的路徑。若您使用 Amazon EBS 後端 AMI 啟動執行個體，傳回的結果將會是 unknown。 | 1.0 | 
| ancestor-ami-ids  | 任何為了建立此 AMI 重新組合之執行個體的 AMI ID。此值只有在 AMI 資訊清單檔案包含 ancestor-amis 鍵時才會存在。 | 2007-10-10 | 
| autoscaling/target-lifecycle-state | 顯示 Auto Scaling 執行個體正在轉換到的目標 Auto Scaling 生命週期狀態的值。當執行個體在 2022 年 3 月 10 日之後轉換到目標生命週期狀態之一時存在。可能的值如下：`Detached` \| `InService` \| `Standby` \| `Terminated` \| `Warmed:Hibernated` \| `Warmed:Running` \| `Warmed:Stopped` \| `Warmed:Terminated`。請參閱「*Amazon EC2 Auto Scaling 使用者指南*」中的[透過執行個體中繼資料擷取目標生命週期狀態](https://docs.aws.amazon.com/autoscaling/ec2/userguide/retrieving-target-lifecycle-state-through-imds.html)。 | 2021-07-15 | 
| block-device-mapping/ami | 包含根/開機檔案系統的虛擬裝置。 | 2007-12-15 | 
| block-device-mapping/ebsN  | 與任何 Amazon EBS 磁碟區相關聯的虛擬裝置。Amazon EBS 磁碟區只在啟動時或在執行個體上次啟動時存在，才能用於中繼資料。N 表示 Amazon EBS 磁碟區的索引 (例如 ebs1 或 ebs2)。 | 2007-12-15 | 
| block-device-mapping/ephemeralN  | 用於任何非 NVMe 執行個體存放區磁碟區的虛擬裝置。N 表示每個磁碟區的索引。區塊型設備映射內的執行個體存放區磁碟區數量，可能與執行個體的執行個體存放區磁碟區實際數量不同。執行個體類型決定了執行個體存放區磁碟區可用執行個體的數量。如果區塊型設備映射內執行個體存放區磁碟區的數量，超過可用執行個體，請忽略額外的執行個體存放區磁碟區。 | 2007-12-15 | 
| block-device-mapping/root  | 與根設備相關聯的虛擬裝置或分割區，或虛擬裝置上的分割區，其中根 (/ 或 C:) 檔案系統與指定的執行個體相關聯。 | 2007-12-15 | 
| block-device-mapping/swap  | 與 swap 相關聯的虛擬裝置。並非總是存在。 | 2007-12-15 | 
| events/maintenance/history | 如果執行個體有已完成或已取消的維護事件，請讓 JSON 字串包含事件的相關資訊。 | 2018-08-17 | 
| events/maintenance/scheduled | 如果執行個體有使用中的維護事件，請讓 JSON 字串包含事件的相關資訊。如需詳細資訊，請參閱 [檢視會影響 Amazon EC2 執行個體的排程事件](viewing_scheduled_events.md)。 | 2018-08-17 | 
| events/recommendations/rebalance | 針對執行個體發出 EC2 執行個體重新平衡建議通知的大約時間 (UTC)。以下是此類別中繼資料的範例：{"noticeTime": "2020-11-05T08:22:00Z"}。此類別只有在發出通知後才可用。如需詳細資訊，請參閱[EC2 執行個體重新平衡建議](rebalance-recommendations.md)。 | 2020-10-27 | 
| hostname | 如果 EC2 執行個體使用的是 IP 型命名 (IPBN)，則這是執行個體的私有 IPv4 DNS 主機名稱。如果 EC2 執行個體使用的是資源型命名 (RBN)，則這是 RBN。若有多個網路介面，則其代表 eth0 裝置 (裝置編號為 0 的裝置)。如需 IPBN 和 RBN 的詳細資訊，請參閱 [EC2 執行個體主機名稱與網域](ec2-instance-naming.md)。 | 1.0 | 
|  iam/info  | 若有任何與執行個體相關聯的 IAM 角色，則包含最近一次執行個體描述檔更新的時間，其中又包含執行個體的 LastUpdated 日期、InstanceProfileArn 和 InstanceProfileId。否則不會存在。 | 2012-01-12 | 
|  iam/security-credentials/{{role-name}}  | 若有和執行個體相關聯的 IAM 角色，{{role-name}} 即為角色的名稱，且 {{role-name}} 包含與角色相關聯的暫時安全登入資料 (如需詳細資訊，請參閱[從執行個體中繼資料中擷取安全登入資料](instance-metadata-security-credentials.md))。否則不會存在。 | 2012-01-12 | 
| identity-credentials/ec2/info | identity-credentials/ec2/security-credentials/ec2-instance 中有關憑證的資訊。 | 2018-05-23 | 
| identity-credentials/ec2/security-credentials/ec2-instance | 執行個體身分角色的登入資料，允許執行個體上的軟體向 自我識別 AWS ，以支援 EC2 Instance Connect 和 AWS Systems Manager 預設主機管理組態等功能。這些登入資料未連接任何政策，因此除了識別 AWS 該功能的執行個體之外，他們沒有額外的 AWS API 許可。如需詳細資訊，請參閱[Amazon EC2 執行個體的執行個體身分角色](iam-roles-for-amazon-ec2.md#ec2-instance-identity-roles)。 | 2018-05-23 | 
| instance-action | 通知執行個體應重新開機以準備綁定。有效值：none \| shutdown \| bundle-pending。 | 2008-09-01 | 
| instance-id | 此執行個體的 ID。 | 1.0 | 
| instance-life-cycle | 此執行個體的購買選項。如需詳細資訊，請參閱[Amazon EC2 帳單與購買選項](instance-purchasing-options.md)。 | 2019-10-01 | 
| instance-type  | 執行個體的類型。如需詳細資訊，請參閱[Amazon EC2 執行個體類型](instance-types.md)。 | 2007-08-29 | 
| ipv6  | 執行個體的 IPv6 地址。若有多個網路介面，則其代表 eth0 裝置 (裝置編號為 0 的裝置) 網路介面，以及第一個指派的 IPv6 地址。如果網路介面 [0] 上沒有 IPv6 地址，則不會設定此項目，並會產生 HTTP 404 回應。 | 2021-01-03 | 
|  kernel-id  | 使用此執行個體啟動的核心 ID (若適用的話)。 | 2008-02-01 | 
|  local-hostname  | 若有多個網路介面，則其代表 eth0 裝置 (裝置編號為 0 的裝置)。如果 EC2 執行個體使用的是 IP 型命名 (IPBN)，則這是執行個體的私有 IPv4 DNS 主機名稱。如果 EC2 執行個體使用的是資源型命名 (RBN)，則這是 RBN。如需 IPBN、RBN 和 EC2 執行個體命名的詳細資訊，請參閱 [EC2 執行個體主機名稱與網域](ec2-instance-naming.md)。 | 2007-01-19 | 
|  local-ipv4  | 執行個體的私有 IPv4 地址。若有多個網路介面，則其代表 eth0 裝置 (裝置編號為 0 的裝置)。如果這是僅限 IPv6 執行個體，則不會設定此項目，並會產生 HTTP 404 回應。 | 1.0 | 
|  mac  | 執行個體的媒體存取控制 (MAC) 地址。若有多個網路介面，則其代表 eth0 裝置 (裝置編號為 0 的裝置)。 | 2011-01-01 | 
| metrics/vhostmd | 不再提供使用。 | 2011-05-01 | 
|  network/interfaces/macs/{{mac}}/device-number  | 與該執行個體相關聯的唯一裝置編號。裝置編號對應至裝置名稱；例如，device-number 為 2 即為 eth2 裝置。此類別對應到 Amazon EC2 API 和 AWS CLI的 EC2 命令使用的 DeviceIndex 和 device-index 欄位。 | 2011-01-01 | 
|  network/interfaces/macs/{{mac}}/interface-id  | 網路介面的 ID。 | 2011-01-01 | 
|  network/interfaces/macs/{{mac}}/ipv4-associations/{{public-ip}}  | 與每個公有 IP 地址相關聯並指派給該介面的私有 IPv4 地址。 | 2011-01-01 | 
| network/interfaces/macs/{{mac}}/ipv6s | 指派給介面的 IPv6 地址。 | 2016-06-30 | 
| network/interfaces/macs/{{mac}}/ipv6-prefix | 指派給網路介面的 IPv6 字首。 |  | 
|  network/interfaces/macs/{{mac}}/local-hostname  | 執行個體的私有 IPv4 DNS 主機名稱。若有多個網路介面，則其代表 eth0 裝置 (裝置編號為 0 的裝置)。如果這是僅限 IPv6 執行個體，則這是資源型名稱。如需 IPBN 和 RBN 的詳細資訊，請參閱 [EC2 執行個體主機名稱與網域](ec2-instance-naming.md)。 | 2007-01-19 | 
|  network/interfaces/macs/{{mac}}/local-ipv4s  | 與介面相關聯的私有 IPv4 地址。如果這是僅限 IPv6 網路介面，則不會設定此項目，並會產生 HTTP 404 回應。 | 2011-01-01 | 
|  network/interfaces/macs/{{mac}}/mac  | 執行個體的 MAC 地址。 | 2011-01-01 | 
|  network/interfaces/macs/{{mac}}/network-card  | 網路卡的索引。某些執行個體類型支援多個網路卡。 | 2020-11-01 | 
| network/interfaces/macs/{{mac}}/owner-id  | 網路介面擁有者的 ID。在多介面環境中，介面僅能由第三方 (例如 Elastic Load Balancing) 連接。介面上的流量一律由介面的擁有者付費。 | 2011-01-01 | 
|  network/interfaces/macs/{{mac}}/public-hostname  | 介面的公有 DNS (IPv4)。只在 enableDnsHostnames 屬性設為 true 時才會傳回此類別。如需詳細資訊，請參閱 Amazon VPC 使用者指南中的 [VPC 的 DNS 屬性](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html)。如果執行個體只有公有 IPv6 地址且沒有公有 IPv4 地址，則不會設定此項目，並會產生 HTTP 404 回應。 |  2011-01-01 | 
|  network/interfaces/macs/{{mac}}/public-ipv4s  | 與界面相關聯的公有 IP 地址與彈性 IP 地址。執行個體上可能會有多個 IPv4 地址。 | 2011-01-01 | 
| network/interfaces/macs/{{mac}}/security-groups  | 網路介面所屬的安全群組。 | 2011-01-01 | 
|  network/interfaces/macs/{{mac}}/security-group-ids  | 網路介面所屬的安全群組 ID。 | 2011-01-01 | 
|  network/interfaces/macs/{{mac}}/subnet-id  | 介面所在的子網 ID。 | 2011-01-01 | 
|  network/interfaces/macs/{{mac}}/subnet-ipv4-cidr-block  | 介面所在子網的 IPv4 CIDR 區塊。 | 2011-01-01 | 
| network/interfaces/macs/{{mac}}/subnet-ipv6-cidr-blocks  | 介面所在子網的 IPv6 CIDR 區塊。 | 2016-06-30  | 
|  network/interfaces/macs/{{mac}}/vpc-id  | 介面所在的 VPC ID。 | 2011-01-01 | 
| network/interfaces/macs/{{mac}}/vpc-ipv4-cidr-block | VPC 的主要 IPv4 CIDR 區塊。 | 2011-01-01 | 
| network/interfaces/macs/{{mac}}/vpc-ipv4-cidr-blocks | VPC 的 IPv4 CIDR 區塊。 | 2016-06-30  | 
| network/interfaces/macs/{{mac}}/vpc-ipv6-cidr-blocks | 介面所在 VPC 的 IPv6 CIDR 區塊。 | 2016-06-30  | 
|  placement/availability-zone | 啟動執行個體的可用區域。 | 2008-02-01 | 
|  placement/availability-zone-id | 啟動的執行個體所在的靜態可用區域 ID。可用區域 ID 會在各帳戶間保持一致。但是，它可能與可用區域不同，視帳戶而異。 | 2019-10-01 | 
|  placement/group-name  | 在啟動執行個體的位置放置群組名稱。 | 2020-08-24 | 
|  placement/host-id  | 啟動執行個體位置的主機 ID。僅適用於 專用執行個體。 | 2020-08-24 | 
|  placement/partition-number  | 啟動執行個體位置的分割區編號。 | 2020-08-24 | 
|  placement/region  | 啟動執行個體 AWS 的區域。 | 2020-08-24 | 
|  product-codes  | AWS Marketplace 與執行個體相關聯的產品代碼，如果有的話。 | 2007-03-01 | 
|  public-hostname  | 執行個體的公有 DNS (IPv4)。只在 enableDnsHostnames 屬性設為 true 時才會傳回此類別。如需詳細資訊，請參閱 Amazon VPC 使用者指南中的 [VPC 的 DNS 屬性](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html)。如果執行個體只有公有 IPv6 地址且沒有公有 IPv4 地址，則不會設定此項目，並會產生 HTTP 404 回應。 | 2007-01-19 | 
|  public-ipv4  | 公有 IPv4 地址。若彈性 IP 地址與執行個體相關聯，傳回的值即為彈性 IP 地址。 | 2007-01-19 | 
|  public-keys/0/openssh-key  | 公有金鑰。只有在執行個體啟動階段提供時才可用。 | 1.0 | 
|  ramdisk-id  | 啟動階段指定之 RAM 磁碟的 ID (若適用的話)。 | 2007-10-10 | 
|  reservation-id  | 保留 ID。 | 1.0 | 
|  security-groups  | 套用至執行個體的安全群組名稱。<br />在啟動之後，您可以變更執行個體的安全群組。這類變更除了會在此反映，也會在 network/interfaces/macs/*{{mac}}*/security-groups 中反映。 | 1.0 | 
|  services/domain  | 區域的 AWS 資源網域。 | 2014-02-25 | 
|  services/partition  | 資源所在的分割區。對於標準 AWS 區域，分割區為 `aws`。如果您有其他分割區的資源，則該分割區為 `aws-{{partitionname}}`。例如，中國 (北京) 區域的資源分割區，即為 `aws-cn`。 | 2015-10-20 | 
|  spot/instance-action  | 動作 (休眠、停止或終止) 和動作發生的約略時間 (UTC)。只有在 Spot 執行個體已標記為休眠、停止或終止時，才會顯示此項目。如需詳細資訊，請參閱[instance-action](spot-instance-termination-notices.md#instance-action-metadata)。 | 2016-11-15 | 
|  spot/termination-time  | Spot 執行個體的作業系統接收關機訊號的近似時間 (UTC)。此項目只有在 Spot 執行個體已由 Amazon EC2 標記為終止時，才會存在且包含時間值 (例如，2015-01-05T18:02:00Z)。若您自行終止 Spot 執行個體，則 termination-time 項目便不會設為時間。如需詳細資訊，請參閱[termination-time](spot-instance-termination-notices.md#termination-time-metadata)。 | 2014-11-05 | 
| system | 執行個體的基礎虛擬化類型 (Hypervisor)。 | 2022-09-24 | 
| tags/instance | 與執行個體相關聯的執行個體標籤。僅當您明確允許存取執行個體中繼資料中的標籤時才可用。如需詳細資訊，請參閱 [在執行個體中繼資料中啟用標籤存取權](work-with-tags-in-IMDS.md#allow-access-to-tags-in-IMDS)。 | 2021-03-23 | 

## 動態資料分類
<a name="dynamic-data-categories"></a>

下表列出動態資料的分類。


| 類別 | 描述 | 類別發佈時的版本 | 
| --- | --- | --- | 
| fws/instance-monitoring  | 顯示客戶是否在 CloudWatch 中啟用詳細一分鐘監控的值。有效值：enabled \| disabled | 2009-04-04 | 
| instance-identity/document  | 包含執行個體屬性的 JSON，例如 instance-id、私有 IP 地址等。請參閱 [Amazon EC2 執行個體的執行個體身分文件](instance-identity-documents.md)。 | 2009-04-04 | 
| instance-identity/pkcs7  | 用來使用簽章確認文件的真確性和其內容。請參閱 [Amazon EC2 執行個體的執行個體身分文件](instance-identity-documents.md)。 | 2009-04-04 | 
| instance-identity/signature  | 可由其他廠商用來確認其來源和真確性的資料。請參閱 [Amazon EC2 執行個體的執行個體身分文件](instance-identity-documents.md)。 | 2009-04-04 | 