search
LoginSignup
0

posted at

aws cli にてファイルの暗号化・復号を行う

aws cli インターフェース(linux環境)で、ファイルの暗号化(復号)を行う

「aws kms」コマンドでファイルの暗号化は可能だが、ファイルサイズ制限がある。
awsサポートに「容量の大きいファイルをEC2(linux)環境で暗号化したい」と問い合わせた所、「aws-encryption-sdk-cli」を勧められた。
(暗号鍵は、kmsで管理し、暗号化(復号)は、aws-encryption-cli を使うのがベストプラクティスとのこと)

今回は、「aws-encryption-cli」の使用例について記載する。

(前提)
① aws cli のインストールは済。
  バージョン:aws-cli/2.4.28 Python/3.8.8 Linux/4.18.0-348.20.1.el8_5.x86_64 exe/x86_64.rhel.8 prompt/off (「aws --version」コマンドで確認)

② aws-encryption-sdk-cliはインストール済。
  バージョン:aws-encryption-cli --version (「aws-encryption-cli --version」コマンドで確認)
  (インストール手順:https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/crypto-cli-install.html)

手順1:kmsにて、「カスタマー管理型のキー」を作成する

image.png

キーユーザにEC2ユーザのロールを追加する
image.png

手順2:手順1で作成したキーidとarnを用いて、暗号化(復号)を行う

暗号化時は、キーidを指定し、復号化時は、キーarnを指定するのがポイント。
encryption-contextオプションは、なくても可能だが、設定する場合は、暗号化・復号で合わせる必要がある。

# 暗号化 キーidを指定
/usr/local/bin/aws-encryption-cli --encrypt --input 【ファイル名】 --wrapping-keys key=********-****-****-****-**** --output . --metadata-output ~/metadata  --encryption-context purpose=testtest
# 復号 キーarnを指定
/usr/local/bin/aws-encryption-cli --decrypt --input 【ファイル名】 --wrapping-keys key=arn:aws:kms:*******:******:key/********-****-****-****-**** --output . --metadata-output ~/metadata  --encryption-context purpose=testtest

encryption-contextオプションを指定しない場合は以下の通り

# 暗号化 キーidを指定
/usr/local/bin/aws-encryption-cli --encrypt --input 【ファイル名】 --wrapping-keys key=********-****-****-****-**** --output . --metadata-output ~/metadata
# 復号 キーarnを指定
/usr/local/bin/aws-encryption-cli --decrypt --input 【ファイル名】 --wrapping-keys key=arn:aws:kms:*******:******:key/********-****-****-****-**** --output . --metadata-output ~/metadata

補足:「aws-encryption-cli」実行時に以下のエラーが出た

Encountered unexpected error: increase verbosity to see details.
UnknownRegionError("No default region found and no region determinable from key id: ********-****-****-****-****")

これは、aws configureの設定で、リージョンを設定していなかったのが原因だった。
「aws configure get region」コマンドで確認し設定し直した所、エラーは解消された。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
0