PythonでBoto3を使用しKMS(対称暗号化)キーを無効化する

スポンサーリンク

PythonでBoto3を使用しKMS(対称暗号化)キーを無効化してみます。キーを無効化するということは、有効から無効に変更し、暗号化操作でそのキーを使用できないようにすることを意味します。

前回「Boto3を使用しAmazonKMSで、KMS(対称暗号化)キーを作成する」という記事を公開しましたが、create_kms_key()関数を用いてKMS(対称暗号化)キーを作成すると、自動的にステータスが「有効」となりますが、今回はKMS(対称暗号化)キーを無効化してみます。

なお、今回はBoto3を用います。このライブラリ・モジュールは、Pythonの標準ライブラリではありませんので、事前にインストールする必要があります。また、Boto3を用いる場合には、クレデンシャル(資格情報)などの設定が必要になりますので、こちらを参考にしていただければと思います。

■Python

今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows10)(pythonランチャーでの確認)

■Key Management Service (KMS)コンソールから無効化するキーを確認する

では、まず前回KeyIdが「’939d0660-57b9-4da2-9c86-20c46a66914e’」という一意のKMS(対称暗号化)キーを作成しましたので、「AWS マネジメントコンソール」にログインし、「KMS 」サービスを選択します。

選択すると「KMS コンソール」が表示されます。コンソールの左側メニューから「カスタマー管理型のキー」をクリックします。クリックすると、「カスタマー管理型のキー」の「ID」などが表示されます。この中に前回作成したKeyIdが「’939d0660-57b9-4da2-9c86-20c46a66914e’」という一意のKMS(対称暗号化)キーを確認し、「ステータス」も「有効」であることを確認しました。最後に今回作成した一意のKMS(対称暗号化)キーが「米国東部(オハイオ)us-east-2」上で作られいることも確認します。

■Boto3を使用しKMS(対称暗号化)キーを無効化する

確認後、Boto3を使用しKMS(対称暗号化)キーを無効化するスクリプトを書いていきます。

■コード

import boto3
AWS_REGION = "us-east-2"

kms_client = boto3.client("kms", region_name=AWS_REGION)

def disable_kms_key(key_id):
    response = kms_client.disable_key(KeyId=key_id)
    return response

if __name__ == '__main__':
    KEY_ID = "939d0660-57b9-4da2-9c86-20c46a66914e"
    kms = disable_kms_key(KEY_ID)
    print("キーの無効化に成功しました。")

importでboto3を呼び出します。その後、AWS_REGIONという変数を定義し、その中で、特定のAWSリージョンを指定し格納します。今回は「us-east-2」とします。

格納後、kms_clientという変数を定義し、その中でboto3.client()を用います。括弧内には第1の引数,パラメータとしてkmsを渡します。その後、第2の引数,パラメータとして「region_name=AWS_REGION」を渡します。これでクライアントが作成されました。

作成後、def文を用いてdisable_kms_key()という関数を定義します。定義された関数が呼び出された時に実行される処理としては、responseという変数を定義し、その中でkms_clientに対してdisable_key()を用います。括弧内には、第1の引数,パラメータ(KeyId=)として、KMSキーのキーIDを渡します。今回は「key_id」とします。これで無効にするKMSキーを識別し、キーを無効に設定するものになります。

設定されたものをresponse内の格納します。格納後、returnとしてresponse変数を返します。

最後に「if __name__ == ‘__main__’:」を用いて動作を実行、デバックしてみます。KEY_IDという変数を定義し、その中に先程確認したKeyIdを格納します。格納後、kmsという変数を定義し、その中にdisable_kms_key()を呼び出します。この時に括弧内に引数,パラメータとして、KEY_ID変数を渡します。これで無効にする設定の処理が行われます。その後、print()で無効化の成功の文字列を返します。

■実行・検証

このスクリプトを「key_invalidate.py」という名前で、Pythonが実行されている作業ディレクトリ(カレントディレクトリ)に保存し、コマンドプロンプトから実行してみます。

実行してみると、「キーの無効化に成功しました。」と出力されました。出力後、実際に無効化されているのかを、コンソール上で確認してみます。確認のために「KMS コンソール」の左側メニューから「カスタマー管理型のキー」をクリックします。

クリックすると、「キーID」が表示され、KeyIdが「’939d0660-57b9-4da2-9c86-20c46a66914e’」の一意のKMS(対称暗号化)キーを確認すると、「ステータス」が「無効」となっていることが確認できました。

コメント

タイトルとURLをコピーしました