■ はじめに
https://dk521123.hatenablog.com/entry/2019/10/14/000000
https://dk521123.hatenablog.com/entry/2020/01/29/224525
の続き。 今回は、Glue の セキュリティ設定(security configuration) について扱う。
目次
【1】セキュリティ設定 1)S3 暗号化モード 2)CloudWatch Logs 暗号化モード 3)ジョブのブックマーク暗号化モード 【2】関連する主なBoto3 API一覧 【3】使用上の注意 1)KMSについて 【4】サンプル 事前準備 例1:セキュリティ設定削除/作成 (delete/create_security_configuration)
【1】セキュリティ設定
Glue の セキュリティ設定については、以下の通り。 1)S3 暗号化モード 2)CloudWatch Logs 暗号化モード 3)ジョブのブックマーク暗号化モード
1)S3 暗号化モード
Amazon S3 データを作成する場合は、 Amazon S3 マネージドキー (SSE-S3) によるサーバー側暗号化または AWS KMS 管理キー (SSE-KMS) によるサーバー側暗号化のいずれかを使用します
SSE-S3
https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/UsingServerSideEncryption.html
SSE-KMS
https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/UsingKMSEncryption.html
2)CloudWatch Logs 暗号化モード
サーバ側 (SSE-KMS) 暗号化は CloudWatch Logs を暗号化するために使用
3)ジョブのブックマーク暗号化モード
クライアント側 (CSE-KMS) 暗号化は、ジョブのブックマークを暗号化するために使用
公式サイト
https://docs.aws.amazon.com/ja_jp/glue/latest/dg/console-security-configurations.html
【2】関連する主なBoto3 API一覧
以下のAPIを参照しながら、実装していく
https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/glue.html
主なAPI
# | API名 | 説明 |
---|---|---|
1 | get_security_configuration() | セキュリティ設定の取得 |
2 | get_security_configurations() | セキュリティ設定の取得 |
3 | create_security_configuration() | セキュリティ設定の作成 |
4 | delete_security_configuration() | セキュリティ設定の削除 |
【3】使用上の注意
1)KMSについて
* AWS Glue は、対称カスタマーマスターキー (CMK) のみをサポート * 以下のような形式で ARN を入力 + arn:aws:kms:<region>:<account-id>:key/<key-id> + arn:aws:kms:<region>:<account-id>:alias/<alias-name>
【4】サンプル
事前準備
* 以下の関連記事などを参考にKMSを作成しておく => 「arn:aws:kms:ap-northeast-1:111122223333:alias/ExampleAlias」とする
https://dk521123.hatenablog.com/entry/2020/02/27/232553
例1:セキュリティ設定削除/作成 (delete/create_security_configuration)
delete_security_configuration
https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/glue.html#Glue.Client.delete_security_configuration
create_security_configuration
https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/glue.html#Glue.Client.create_security_configuration
import boto3 try: from botocore.exceptions import BotoCoreError, ClientError except ImportError: pass # ここから実装 aws_region = 'ap-northeast-1' glue_client = boto3.client('glue', region_name=aws_region) target_security_configuration = 'target-db-connection' # 一旦 security configuration の削除を試みる try: delete_response = glue_client.delete_security_configuration( ConnectionName=target_security_configuration) print(delete_response) except(BotoCoreError, ClientError) as ex: if ex.response['Error']['Code'] == 'EntityNotFoundException': print('対象[{}]見当たらず、削除不要'.format(target_security_configuration)) else: raise ex # security configuration の作成 kms_arn = 'arn:aws:kms:ap-northeast-1:111122223333:alias/ExampleAlias' try: create_response = glue_client.create_security_configuration( ConnectionInput={ "Name": target_security_configuration, "EncryptionConfiguration": { 'S3Encryption': [ { # 'S3EncryptionMode': 'DISABLED'|'SSE-KMS'|'SSE-S3', 'S3EncryptionMode': 'SSE-KMS', 'KmsKeyArn': kms_arn } ], 'CloudWatchEncryption': { # 'CloudWatchEncryptionMode': 'DISABLED'|'SSE-KMS', 'CloudWatchEncryptionMode': 'SSE-KMS', 'KmsKeyArn': kms_arn }, 'JobBookmarksEncryption': { # 'JobBookmarksEncryptionMode': 'DISABLED'|'CSE-KMS', 'JobBookmarksEncryptionMode': 'CSE-KMS', 'KmsKeyArn': kms_arn } } }) print(create_response) except(BotoCoreError, ClientError) as ex: print('Error [{}]'.format(ex)) raise ex
関連記事
AWS Glue ~ Boto3 / 入門編 ~
https://dk521123.hatenablog.com/entry/2019/10/14/000000
AWS Glue ~ Boto3 / クローラ編 ~
https://dk521123.hatenablog.com/entry/2021/04/16/135558
AWS Glue ~ Boto3 / セキュリティ設定編 ~
https://dk521123.hatenablog.com/entry/2020/04/08/171208
AWS Glue ~ Boto3 / Glue connection編 ~
https://dk521123.hatenablog.com/entry/2020/01/29/224525
AWS Glue ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2019/10/01/221926
AWS Glue ~ ログ ~
https://dk521123.hatenablog.com/entry/2019/10/09/000000
AWS Glue ~ Boto3 / 入門編 ~
https://dk521123.hatenablog.com/entry/2019/10/14/000000
AWS Glue ~ Boto3 / クローラ編 ~
https://dk521123.hatenablog.com/entry/2021/04/16/135558
AWS Glue ~ Boto3 / セキュリティ設定編 ~
https://dk521123.hatenablog.com/entry/2020/04/08/171208
AWS Glue のトラブルシューティング
https://dk521123.hatenablog.com/entry/2019/10/25/232155
AWS Key Management Service (KMS)
https://dk521123.hatenablog.com/entry/2020/02/27/232553