Python
 Computer >> コンピューター >  >> プログラミング >> Python

Boto3を使ってAWS Glue Data Catalogのセキュリティ構成・暗号化設定を取得する方法

はじめに

この記事では、Pythonのboto3ライブラリを使用して、AWS Glue Data Catalogのセキュリティ構成(暗号化設定)を取得する方法を解説します。Data Catalogの暗号化設定を確認することで、保存時の暗号化(Encryption at Rest)や接続パスワードの暗号化状態を把握できます。

課題

Pythonのboto3ライブラリを使って、カタログのセキュリティ構成/暗号化設定を取得します。

例として、指定したカタログの暗号化設定情報を取得するコードを見ていきましょう。

解決のためのアプローチと手順

ステップ1: 例外処理のために、boto3とbotocore.exceptionsをインポートします。

ステップ2: catalog_idは任意のパラメータです。指定しない場合は、実行ユーザーのAWSアカウントのカタログが対象になります。

ステップ3: boto3ライブラリを使用してAWSセッションを作成します。デフォルトプロファイルにregion_nameが設定されていることを確認してください。設定されていない場合は、セッション作成時に明示的にregion_nameを渡す必要があります。

ステップ4: AWS Glue用のクライアントを作成します。

ステップ5: get_data_catalog_encryption_settings関数を呼び出し、catalog_idをCatalogIdパラメータとして渡します。

ステップ6: レスポンスとして、カタログの暗号化設定の詳細が返されます。

ステップ7: 処理中に問題が発生した場合に備えて、汎用的な例外処理を実装しておきます。

サンプルコード

以下のコードを使用すると、カタログのセキュリティ構成/暗号化設定を取得できます。

import boto3
from botocore.exceptions import ClientError

def retrieves_encryption_setting(catalog_id=None):
    session = boto3.session.Session()
    glue_client = session.client('glue')
    try:
        response = glue_client.get_data_catalog_encryption_settings(CatalogId=catalog_id)
        return response
    except ClientError as e:
        raise Exception("boto3 client error in retrieves_encryption_setting: " + e.__str__())
    except Exception as e:
        raise Exception("Unexpected error in retrieves_encryption_setting: " + e.__str__())

print(retrieves_encryption_setting())

実行結果

上記のコードを実行すると、以下のようなレスポンスが返されます。EncryptionAtRest(保存時の暗号化)モードがSSE-KMSであることや、接続パスワードが暗号化して返される設定になっていることが確認できます。

{'DataCatalogEncryptionSettings': {'EncryptionAtRest':
{'CatalogEncryptionMode': 'SSE-KMS'}, 'ConnectionPasswordEncryption':
{'ReturnConnectionPasswordEncrypted': True}}, 'ResponseMetadata':
{'RequestId': '5ffc0dbb***************7c', 'HTTPStatusCode': 200,
'HTTPHeaders': {'date': 'Sun, 28 Feb 2021 12:22:16 GMT', 'content-type':
'application/x-amz-json-1.1', 'content-length': '166', 'connection':
'keep-alive', 'x-amzn-requestid': '5ffc0dbb********************7c'},
'RetryAttempts': 0}}

まとめ

boto3のget_data_catalog_encryption_settings関数を使えば、AWS Glue Data Catalogの暗号化設定を簡単にプログラムから確認できます。catalog_idを省略した場合は自分のアカウントのカタログが対象となり、ClientErrorなどの例外ハンドリングを組み込むことで、安全かつ堅牢なスクリプトを作成できます。

  1. Boto3を使ってAWS Glueデータカタログからデータベースを削除する方法

    課題Pythonのboto3ライブラリを使用して、自分のAWSアカウント内に作成されたデータベースを削除します。例 − アカウントに作成された「Portfolio」というデータベースを削除します。解決のためのアプローチとアルゴリズムステップ1 − 例外をハンドリングするために、boto3とbotocoreの例外モジュールをインポートします。ステップ2 − AWS Glue Catalogから削除したいデータベース名を database_name パラメータとして渡します。ステップ3 − boto3ライブラリを使ってAWSセッションを作成します。デフォルトプロファイルに region_name

  2. Boto3を使ってAWS Glueデータカタログからクローラーを削除する方法

    本記事では、Pythonのboto3ライブラリを使用して、AWSアカウント内に作成されたGlueクローラーを削除する手順を解説します。AWS Glueのクローラーは、S3などのデータソースをスキャンしてデータカタログにテーブル定義を作成する重要なコンポーネントですが、不要になったクローラーは適切に削除することでリソースを整理できます。 課題 − Pythonのboto3ライブラリを使って、自分のアカウントに作成されたクローラーを削除する。 例 − アカウントに作成された「Portfolio」という名前のクローラーを削除する。 問題解決のアプローチとアルゴリズム ステップ1 − 例外処理のため