AWS re:Postを使用することにより、以下に同意したことになります 利用規約

AWS Key Management Service にキーをインポートするにはどうすればよいですか?

所要時間2分
0

AWS Key Management Service (AWS KMS) にキーマテリアルをインポートして、AWS サービスで 256 ビットの対称キーを使用したいと思います。

解決策

AWS KMS を使用すると、キーマテリアルを AWS KMS キーにインポートできます。次に、AWS KMS によってサポートされる AWS サービスとこのキーを使用できます。

次の手順に従って、キーマテリアルをAWS KMSにインポートします。

1.    キーマテリアルのない AWS KMS キーを作成します。AWS KMS キーの ID をメモしてください。

注:****キーの管理者権限の定義キーの使用権限の定義では、キーの管理者とキーのロールを分けることがベストプラクティスです。これにより、どちらかの認証情報が漏洩した場合の影響を制限できます。

2.    ローカルマシンまたは OpenSSL がインストールされた Amazon Elastic Compute Cloud (Amazon EC2) インスタンスでターミナルを開きます。詳細については、「OpenSSL のウェブサイト」を参照してください。

3.    256 ビットの対称キーを生成するには、次のコマンドを実行します。

openssl rand -out PlaintextKeyMaterial.bin 32

4.    キーを記述し、インポート用のパラメータを取得するには、以下のAWS コマンドラインインターフェイス (AWS CLI) コマンドを実行します。

**注:**これらのコマンドは、パブリックキーとインポートトークンパラメータを変数に格納します。

export KEY=`aws kms --region eu-west-2 get-parameters-for-import --key-id example1-2345-67ab-9123-456789abcdef --wrapping-algorithm RSAES_OAEP_SHA_256 --wrapping-key-spec RSA_2048 --query '{Key:PublicKey,Token:ImportToken}' --output text`

5.    パブリックキーとインポートトークンを別々の Base64 エンコードファイルに配置するには、次のコマンドを実行します。

echo $KEY | awk '{print $1}' > PublicKey.b64
echo $KEY | awk '{print $2}' > ImportToken.b64

6.    Base64 エンコードされたファイルをバイナリファイルに変換してインポートするには、次のコマンドを実行します。

openssl enc -d -base64 -A -in PublicKey.b64 -out PublicKey.bin
openssl enc -d -base64 -A -in ImportToken.b64 -out ImportToken.bin

7.    バイナリファイルに変換されたパブリックキーを使用してキーマテリアルを暗号化するには、次のコマンドを実行します。

openssl pkeyutl -in PlaintextKeyMaterial.bin -out EncryptedKeyMaterial.bin -inkey PublicKey.bin -keyform DER -pubin -encrypt -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_md:sha256

8.    AWS KMS に暗号化されたキーマテリアルをインポートするには、以下のコマンドを実行してください。

**注:**この例では、キーマテリアルは期限切れにならないように指定されていますが、キーマテリアルの有効期限を設定することもできます。詳細については、「ExpirationModel」を参照してください。

aws kms --region eu-west-2 import-key-material --key-id example1-2345-67ab-9123-456789abcdef --encrypted-key-material fileb://EncryptedKeyMaterial.bin --import-token fileb://ImportToken.bin --expiration-model KEY_MATERIAL_DOES_NOT_EXPIRE

9.    インポートされたキーのステータスがEnabledに設定されているかどうかを確認します。これを行うには、AWS KMS コンソールでキーを確認するか、DescribeKey API アクションを実行します。

キーをインポートできない場合は、以下の原因と解決方法に注意してください。

  • 24 時間以上待ち、インポートトークンが期限切れになっている。これを解決するには、ラッピングキーとインポートトークンを再度ダウンロードしてキーマテリアルを再暗号化してください。
  • キーマテリアルが 256 ビットの対称キーではありません。これを解決するには、暗号化されキーマテリアルのファイルサイズが 32 バイトであることを確認してください。ファイルサイズを確認するには、以下のいずれかのコマンドを実行してください。

Linux

wc -c <filename>.bin

Windows

dir <filename>.bin

詳細については、「AWS KMS キーのキーマテリアルをインポートする」を参照してください。


関連情報

インポートされたキーマテリアルについて

OpenSSL を使用して AWS KMS にキーをインポートしていますが、「InvalidCiphertext」エラーが発生します。これを修正するにはどうすればよいですか?