

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

# 設定 Amazon EC2 AMI 工具
<a name="set-up-ami-tools"></a>

您可使用 AMI 工具來建立及管理 Amazon S3 支援的 Linux AMI。若要使用工具，您必須在 Linux 執行個體上安裝工具。AMI 工具在不支援 RPM 的 Linux 發行版本上會同時以 RPM 和 .zip 檔案的方式提供。

**使用 RPM 設定 AMI 工具**

1. 使用 Linux 發行版本的套件管理工具 (例如 yum) 來安裝 Ruby。例如：

   ```
   [ec2-user ~]$ sudo yum install -y ruby
   ```

1. 使用 wget 或 curl 等工具下載 RPM 檔案。例如：

   ```
   [ec2-user ~]$ wget https://s3.amazonaws.com/ec2-downloads/ec2-ami-tools.noarch.rpm
   ```

1. 使用下列命令驗證 RPM 檔案的簽章：

   ```
   [ec2-user ~]$ rpm -K ec2-ami-tools.noarch.rpm
   ```

   上述命令應該會顯示檔案的 SHA1 和 MD5 雜湊為 `OK.` 如果命令顯示雜湊為 `NOT OK`，請用下列命令檢視檔案的 Header SHA1 和 MD5 雜湊：

   ```
   [ec2-user ~]$ rpm -Kv ec2-ami-tools.noarch.rpm
   ```

   接著比較檔案的 Header SHA1 和 MD5 雜湊與下列已驗證的 AMI 工具雜湊，以確認檔案的真偽：
   + Header SHA1：a1f662d6f25f69871104e6a62187fa4df508f880
   + MD5：9faff05258064e2f7909b66142de6782

   如果檔案的 Header SHA1 和 MD5 雜湊符合已驗證的 AMI 工具雜湊，請繼續下一步。

1. 使用以下命令安裝 RPM：

   ```
   [ec2-user ~]$ sudo yum install ec2-ami-tools.noarch.rpm
   ```

1. 使用 [ec2-ami-tools-version](ami-tools-commands.md#ami-tools-version) 命令確認 AMI 工具的安裝。

   ```
   [ec2-user ~]$ ec2-ami-tools-version
   ```
**注意**  
如果出現「cannot load such file -- ec2/amitools/version (LoadError)」之類的載入錯誤，請完成下一個步驟，將 AMI 工具的安裝位置加入到 `RUBYLIB` 路徑。

1. (選用) 如果您在上一步驟中發生錯誤，請將 AMI 工具的安裝位置加入到 `RUBYLIB` 路徑。

   1. 執行下列命令來判斷要加入的路徑。

      ```
      [ec2-user ~]$ rpm -qil ec2-ami-tools | grep ec2/amitools/version
      /usr/lib/ruby/site_ruby/ec2/amitools/version.rb
      /usr/lib64/ruby/site_ruby/ec2/amitools/version.rb
      ```

      在上例中，先前載入錯誤所缺少的檔案位在 `/usr/lib/ruby/site_ruby` 和 `/usr/lib64/ruby/site_ruby`。

   1. 在先前的步驟中將位置加入到 `RUBYLIB` 路徑。

      ```
      [ec2-user ~]$ export RUBYLIB=$RUBYLIB:/usr/lib/ruby/site_ruby:/usr/lib64/ruby/site_ruby
      ```

   1. 使用 [ec2-ami-tools-version](ami-tools-commands.md#ami-tools-version) 命令確認 AMI 工具的安裝。

      ```
      [ec2-user ~]$ ec2-ami-tools-version
      ```

**使用 .zip 檔案設定 AMI 工具**

1. 使用 Linux 發行版本的套件管理工具 (例如 **apt-get**) 來安裝 Ruby 及解壓縮。例如：

   ```
   [ec2-user ~]$ sudo apt-get update -y && sudo apt-get install -y ruby unzip
   ```

1. 使用 wget 或 curl 等工具下載 .zip 檔案。例如：

   ```
   [ec2-user ~]$ wget https://s3.amazonaws.com/ec2-downloads/ec2-ami-tools.zip
   ```

1. 將檔案解壓縮到適當的安裝目錄，例如 `/usr/local/ec2`。

   ```
   [ec2-user ~]$ sudo mkdir -p /usr/local/ec2
   $ sudo unzip ec2-ami-tools.zip -d /usr/local/ec2
   ```

   請注意，.zip 檔案包含資料夾 ec2-ami-tools-*x*.*x*.*x*，其中 *x*.*x*.*x* 是工具的版本號碼 (例如，`ec2-ami-tools-1.5.7`)。

1. 將 `EC2_AMITOOL_HOME` 環境變數設定為工具的安裝目錄。例如：

   ```
   [ec2-user ~]$ export EC2_AMITOOL_HOME=/usr/local/ec2/ec2-ami-tools-x.x.x
   ```

1. 將工具加入到 `PATH` 環境變數。例如：

   ```
   [ec2-user ~]$ export PATH=$EC2_AMITOOL_HOME/bin:$PATH
   ```

1. 使用 [ec2-ami-tools-version](ami-tools-commands.md#ami-tools-version) 命令確認 AMI 工具的安裝。

   ```
   [ec2-user ~]$ ec2-ami-tools-version
   ```

## 管理簽署憑證
<a name="ami-tools-managing-certs"></a>

AMI 工具中的部分命令需要簽署憑證 (亦稱為 X.509 憑證)。您必須建立憑證，然後將其上傳至 AWS。例如，您可用 OpenSSL 等第三方工具來建立憑證。

**建立簽署憑證**

1. 安裝及設定 OpenSSL。

1. 使用 `openssl genrsa` 命令建立私有金鑰，並將輸出儲存至 `.pem` 檔案。建議新建一個 2048 或 4096 位元 RSA 金鑰。

   ```
   openssl genrsa 2048 > private-key.pem
   ```

1. 使用 `openssl req` 命令產生憑證。

   ```
   openssl req -new -x509 -nodes -sha256 -days 365 -key private-key.pem -outform PEM -out certificate.pem
   ```

若要將憑證上傳至其中 AWS，請使用 [upload-signing-certificate](https://docs.aws.amazon.com/cli/latest/reference/iam/upload-signing-certificate.html) 命令。

```
aws iam upload-signing-certificate --user-name user-name --certificate-body file://path/to/certificate.pem
```

若要列出使用者的憑證，請用 [list-signing-certificates](https://docs.aws.amazon.com/cli/latest/reference/iam/list-signing-certificates.html) 命令：

```
aws iam list-signing-certificates --user-name user-name
```

若要停用或重新啟用簽署憑證，請用 [update-signing-certificate](https://docs.aws.amazon.com/cli/latest/reference/iam/update-signing-certificate.html) 命令。下列命令可停用憑證：

```
aws iam update-signing-certificate --certificate-id OFHPLP4ZULTHYPMSYEX7O4BEXAMPLE --status Inactive --user-name user-name
```

若要刪除憑證，請用 [delete-signing-certificate](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-signing-certificate.html) 命令：

```
aws iam delete-signing-certificate --user-name user-name --certificate-id OFHPLP4ZULTHYPMSYEX7O4BEXAMPLE
```