

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

# 在配方中使用基礎映像參數
<a name="tutorial-ssm-parameters-recipe"></a>

當您為映像自訂建立配方時，有幾種方式可以識別您開頭的基本映像。如果您為基礎映像指定 Amazon Machine Image (AMI) ID，且基礎映像已更新，則其 AMI ID 可能會變更，而且您需要更新配方以符合。

您可以定義 AWS Systems Manager 參數存放區參數 (SSM 參數） 來存放基礎映像 AMI ID 的值，然後使用 參數在配方中指定基礎映像，而不是在每次基礎映像 ID 變更配方。對於 AWS 受管 AMIs，您可以使用最新版本的公有參數。

本教學課程會逐步引導您建立 AMI ID 參數，並在映像配方中使用它。本教學課程中的影像建置器步驟是以主控台為基礎。

**Topics**
+ [步驟 1：尋找或建立參數存放區參數](#tutorial-ssm-create-parameter)
+ [步驟 2：設定 IAM 許可 （選用）](#tutorial-ssm-configure-iam)
+ [步驟 3：建立使用 參數的映像配方](#tutorial-ssm-create-recipe)

## 步驟 1：尋找或建立參數存放區參數
<a name="tutorial-ssm-create-parameter"></a>

此步驟的程序取決於您為基礎映像指定的 AMI 類型。對於 AWS 受管 AMIs，您可以使用參考目前版本的公有參數。有些參數可能無法全部使用 AWS 區域。

若要開始，請開啟對應至 AMI 的標籤。

------
#### [ AWS managed AMI ]

如果您的基礎映像是 AWS 受管 AMI，您可以使用公有參數來指定 AMI ID，而不是建立自己的參數。若要尋找 AMI 的公有參數，請參閱*AWS Systems Manager 《 使用者指南*》中的[探索公有參數](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-finding-public-parameters.html)。

------
#### [ Custom AMI ]

若要建立 AMI ID 參數，請遵循使用主控台 AWS CLI或 PowerShell 在 [Systems Manager 中建立參數存放區參數](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-su-create.html)的指示。提供下列值，以確保參數值為 AMI ID。

**參數層**： `Standard`

**Type (類型)**：`String`

**資料類型**：選取 `aws:ec2:image`。當您指定此類型時，系統會驗證輸入的值，以確保其為 AMI ID。

**值**：輸入有效的 AMI ID （例如 **{{ami-1234567890abcdef1}}**)。

------

## 步驟 2：設定 IAM 許可 （選用）
<a name="tutorial-ssm-configure-iam"></a>

若要使用 Systems Manager 參數存放區參數 (SSM 參數），無論是公有或私有，必須在 IAM 角色中指定下列 Systems Manager 參數存放區動作，並將 參數列為資源。Image Builder 服務連結角色會授予許可，以取得公有參數，或取得或更新具有 `/imagebuilder/`字首的私有參數。對於沒有該字首的私有參數，您可以將許可新增至執行角色。
+ `ssm:GetParameter` – 此動作可讓您使用 SSM 參數在配方中指定基礎映像。
+ `ssm:PutParameter` – 此動作可讓您在分佈期間將輸出 AMI ID 存放在 SSM 參數中。政策定義看起來相同，但本教學課程並未在範例政策中包含 put 動作。

1. 

**建立自訂角色 （選用）**

   當您在 中建立管道或使用 create-image 命令時 AWS CLI，您只能指定一個 Image Builder 執行角色。如果您已定義 Image Builder 工作流程執行角色，您可以將任何其他功能許可新增至該角色。否則，您會建立新的自訂角色，其中包含必要的許可。如果您已定義自訂執行角色，您可以略過此步驟。

   遵循*AWS Identity and Access Management 《 使用者指南*》中的[建立角色以將許可委派給 AWS 服務](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)的程序。

1. 

**將許可新增至您的自訂角色**

   若要將 SSM 參數許可新增至您的自訂角色，請遵循*AWS Identity and Access Management 《 使用者指南*》中的[更新角色程序的許可政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_update-role-permissions.html#id_roles_update-role-permissions-policy)。

   下列政策範例顯示 `ssm:GetParameter`動作，其中包含在您帳戶中建立的 參數。

------
#### [ JSON ]

****  

   ```
   {
   	"Version":"2012-10-17",		 	 	 
   	"Statement": [
   		{
   			"Sid": "PrivateParameterCustomRole",
   			"Effect": "Allow",
   			"Action": "ssm:GetParameter",
   			"Resource": "arn:aws:ssm:*:{{111122223333}}:parameter/{{parameter-name}}"
   		}
   	]
   }
   ```

------

如需公有參數資源的詳細資訊，請參閱*AWS Systems Manager 《 使用者指南*》中的[呼叫 AMI 公有參數](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-public-parameters-ami.html)。

## 步驟 3：建立使用 參數的映像配方
<a name="tutorial-ssm-create-recipe"></a>



1. 開啟 EC2 Image Builder 主控台，位於 [https://console.aws.amazon.com/imagebuilder/](https://console.aws.amazon.com/imagebuilder/)。

1. 選擇**映像配方**，然後從清單頁面選擇**建立映像配方**。

1. 填寫**基礎映像**區段，如下所示：

   1. 選擇**使用自訂 AMI** 選項。這會顯示其他欄位，您可以在其中輸入 AMI ID 或包含 AMI ID 的 SSM 參數。

   1. 選擇 **SSM 參數**選項。

   1. 在 **SSM 參數**欄位中，輸入您在步驟 1 中建立之參數的參數名稱或 Amazon Resource Name (ARN)。如果您輸入名稱，則主控台中***不會***有 字首。

1. 視需要完成剩餘的配方組態。

**注意**  
如果您透過其他界面設定父系映像，例如 AWS CLI，則參數名稱的字首必須為 `ssm:`（例如 `ssm:{{/ImageBuilder-Tutorial/BaseAMI}}`。