

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# AWS CloudFormation のテンプレートを使用して、AWS Glue での暗号化の適用を自動化
<a name="automate-encryption-enforcement-in-aws-glue-using-an-aws-cloudformation-template"></a>

*Diogo Guedes (Amazon Web Services)*

## 概要
<a name="automate-encryption-enforcement-in-aws-glue-using-an-aws-cloudformation-template-summary"></a>

このパターンは、AWS CloudFormation テンプレートを使用して AWS Glue で暗号化の適用をセットアップして自動化する方法を示しています。このテンプレートは、暗号化を実施するために必要なすべての設定とリソースを作成します。これらのリソースには、初期設定、Amazon EventBridge ルールによって作成された予防コントロール、および AWS Lambda 関数が含まれます。

## 前提条件と制限事項
<a name="automate-encryption-enforcement-in-aws-glue-using-an-aws-cloudformation-template-prereqs"></a>

**前提条件**
+ アクティブなAWS アカウント
+ CloudFormation テンプレートとそのリソースをデプロイするための権限

**制限事項**

このセキュリティコントロールは地域ごとに行われます。AWS Glue で暗号化の適用を設定する各 AWS リージョンに、セキュリティコントロールをデプロイする必要があります。

## アーキテクチャ
<a name="automate-encryption-enforcement-in-aws-glue-using-an-aws-cloudformation-template-architecture"></a>

**ターゲットテクノロジースタック**
+ Amazon CloudWatch Logs (AWS Lambda から)
+ Amazon EventBridge ルール
+ AWS CloudFormation スタック
+ AWS CloudTrail
+ AWS Identity and Access Management (IAM) 管理ロールとポリシー
+ AWS Key Management Service (AWS KMS)
+ AWS KMS alias
+ AWS Lambda 関数
+ Systems Manager Parameter Store

**ターゲットアーキテクチャ**

次の図は、AWS Glue で暗号化の適用を自動化する方法を示しています。

![図は、CloudFormation テンプレートを使用して AWS Glue で暗号化の適用を自動化する方法を示しています。](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/images/pattern-img/d50d0659-5592-44d0-8fcb-7a2983712640/images/272a7fb2-ecbc-41f7-a556-d555e4e39a59.png)


この図表は、次のワークフローを示しています:

1. 「[CloudFormation テンプレート](https://github.com/aws-samples/aws-custom-guardrail-event-driven/blob/main/CloudFormation/aws-custom-guardrail-event-driven.yaml)」は、AWS Glue での暗号化実施のための初期設定や検出制御を含むすべてのリソースを作成します。

1. EventBridge ルールは、暗号化設定の状態変化を検出します。

1. Lambda 関数が呼び出され、CloudWatch ログを通じて評価とロギングが行われます。非準拠の検出では、パラメータストアは AWS KMS キーの Amazon リソースネーム (ARN) で復元されます。サービスは暗号化が有効になった状態で準拠状態に修正されます。

**自動化とスケール**

「[AWS Organizations](https://aws.amazon.com/organizations/)」を使用している場合は、「[AWS CloudFormation StackSets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html)」を使用して、AWS Glue で暗号化の強制を有効にしたい複数のアカウントにこのテンプレートをデプロイできます。

## ツール
<a name="automate-encryption-enforcement-in-aws-glue-using-an-aws-cloudformation-template-tools"></a>
+ [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) は、AWS のリソースや、AWS で実行されるアプリケーションをリアルタイムにモニタリングします。
+ 「[Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html)」は、アプリケーションをさまざまなソースのリアルタイムデータに接続できるようにするサーバーレスイベントバスサービスです。たとえば、Lambda 関数、API 宛先を使用する HTTP 呼び出しエンドポイント、または他の AWS アカウントのイベントバスなどです。
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) を使用すると、AWS リソースをセットアップし、迅速かつ一貫したプロビジョニングを行い、AWS アカウントとリージョン全体でライフサイクル全体にわたってリソースを管理できます。
+ 「[AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)」は、AWS アカウントの運用とリスクの監査、ガバナンスとコンプライアンスを支援します。
+ [AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html) は、フルマネージド型の抽出、変換、ロード (ETL) サービスです。これにより、データストアとデータストリーム間でのデータの分類、整理、強化、移動を確実に行うことができます。
+ [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) は、データの保護に役立つ暗号キーを作成および管理する上で役立ちます。
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) は、サーバーのプロビジョニングや管理を行うことなくコードを実行できるコンピューティングサービスです。必要に応じてコードを実行し、自動的にスケーリングするため、課金は実際に使用したコンピューティング時間に対してのみ発生します。
+ 「[AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html)」は、AWS クラウドで実行されるアプリケーションとインフラストラクチャの管理に役立ちます。アプリケーションとリソースの管理が簡略化され、オペレーション上の問題の検出と解決時間が短縮され、AWS リソースを大規模かつセキュアに管理できるようになります。

**コード**

このパターンのコードは、GitHub 内の「[aws-custom-guardrail-event-driven](https://github.com/aws-samples/aws-custom-guardrail-event-driven/blob/main/CloudFormation/aws-custom-guardrail-event-driven.yaml)」リポジトリで利用できます。

## ベストプラクティス
<a name="automate-encryption-enforcement-in-aws-glue-using-an-aws-cloudformation-template-best-practices"></a>

AWS Glue は、「[AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/author-job-glue.html)」でジョブを作成したり、「[開発エンドポイントを使用してスクリプトを開発したりするための保存データ暗号化](https://docs.aws.amazon.com/glue/latest/dg/dev-endpoint.html)」をサポートしています。

以下のベストプラクティスを考慮します。
+ AWS KMS キーを使用して暗号化されたデータを残りの部分に書き込むように、ETL ジョブと開発エンドポイントを設定します。
+ AWS KMS で管理するキーを使用して、「[AWS Glue データカタログ](https://docs.aws.amazon.com/glue/latest/dg/components-overview.html#data-catalog-intro)」に保存されているメタデータを暗号化します。
+ AWS KMS キーを使用して、ジョブのブックマークや、「[クローラー](https://docs.aws.amazon.com/glue/latest/dg/add-crawler.html)」および ETL ジョブで生成されたログを暗号化します。

## エピック
<a name="automate-encryption-enforcement-in-aws-glue-using-an-aws-cloudformation-template-epics"></a>

### CloudFormation のテンプレートを起動
<a name="launch-the-cloudformation-template"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| CloudFormation のテンプレートをデプロイします。 | GitHub `aws-custom-guardrail-event-driven.yaml` 「[リポジトリ](https://github.com/aws-samples/aws-custom-guardrail-event-driven/blob/main/CloudFormation/aws-custom-guardrail-event-driven.yaml)」からテンプレートをダウンロードし、テンプレートを「[デプロイ](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/deploy/index.html)」します。`CREATE_COMPLETE` ステータスはテンプレートが正常にデプロイされたことを示します。テンプレートには入力パラメータは必要ありません。 | クラウドアーキテクト | 

### AWS Glue の暗号化設定を確認します。
<a name="verify-the-encryption-settings-in-aws-glue"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| AWS KMS キー設定を確認します。 | [See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/automate-encryption-enforcement-in-aws-glue-using-an-aws-cloudformation-template.html) | クラウドアーキテクト | 

### 暗号化の適用をテスト
<a name="test-the-encryption-enforcement"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| クラウドフォーメーションの暗号化設定を確認します。 | [See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/automate-encryption-enforcement-in-aws-glue-using-an-aws-cloudformation-template.html) | クラウドアーキテクト | 
| プロビジョニングされたインフラストラクチャーを非準拠状態に切り替えます。 | [See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/automate-encryption-enforcement-in-aws-glue-using-an-aws-cloudformation-template.html)チェックボックスをオフにすると、ガードレールは AWS Glue の非準拠状態を検出し、暗号化の設定ミスを自動的に修正することでコンプライアンスを強制します。そのため、ページを更新した後は、暗号化のチェックボックスが再びオンになっているはずです。 | クラウドアーキテクト | 

## 関連リソース
<a name="automate-encryption-enforcement-in-aws-glue-using-an-aws-cloudformation-template-resources"></a>
+ 「[AWS CloudFormation コンソールでのスタックの作成](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html)」 (AWS CloudFormation ドキュメント)
+ 「[AWS CloudTrail を使用して AWS API コールでトリガーする CloudWatch Events ルールの作成](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/Create-CloudWatch-Events-CloudTrail-Rule.html) (Amazon CloudWatch ドキュメント)
+ 「[AWS Glue での暗号化のセットアップ](https://docs.aws.amazon.com/glue/latest/dg/set-up-encryption.html)」 (AWS Glue ドキュメント)