

# Amazon EC2 AMI ツールのセットアップ
<a name="set-up-ami-tools"></a>

AMI ツールを使用して、Amazon S3-backed Linux AMI を作成および管理できます。ツールを使用するには、Linux インスタンスにインストールする必要があります。AMI ツールは RPM として使用できるとともに、RPM をサポートしていない Linux ディストリビューションでは .zip ファイルとして使用できます。

**RPM を使用して AMI ツールを設定するには**

1. yum などの Linux ディストリビューション用のパッケージマネージャを使用して 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` であることをコマンドが示している場合、次のコマンドを使用してファイルのヘッダー SHA1 および MD5 ハッシュを表示します。

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

   次に、ファイルのヘッダー SHA1 および MD5 ハッシュを、以下の検証済み AMI ツールハッシュと比較し、ファイルの正統性を確認します。
   + ヘッダー SHA1: a1f662d6f25f69871104e6a62187fa4df508f880
   + MD5: 9faff05258064e2f7909b66142de6782

   ファイルのヘッダー 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. Ruby をインストールし、**apt-get** など、Linux ディストリビューション用のパッケージマネージャを使用して解凍します。次に例を示します。

   ```
   [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
```