NSX Advanced Load Balancer では、Amazon Simple Queue Service (SQS) メッセージ キューの Server-Side Encryption (SSE) がサポートされています。キューを暗号化しても、バックログ メッセージは暗号化されません。また、暗号化をオフにしても、バックログ メッセージの暗号化は解除されません。SQS キューの暗号化は、この記事の作成時点では、米国東部(バージニア州北部)、米国東部(オハイオ州)、米国西部(オレゴン州)の 3 つの AWS リージョンでのみサポートされます。

前提条件

NSX Advanced Load Balancer Controller と、暗号化された SQS キューや Amazon Simple Notification Service (SNS) のその他のアーティファクトを統合するには、アクセス/シークレット キーを使用するユーザーまたは AviController-Refined-Role に次のポリシーを関連付ける必要があります。

  • AviController-SQS-Policy

  • AviController-SNS-Policy

  • AviController-KMS-Policy

AviController-Refined-Role は、SQS キューをポーリングするときに受信したメッセージを復号化できる必要があります。このため、AviController-KMS-Policy を更新して、書き込みアクション kms:Decrypt を含める必要があります。このロールとポリシーの JSON ファイルについては、AWS へのインストールのための IAM ロールの設定セクションに記載されています。

ユーザー管理のカスタマー マスター キー

AWS Key Management Service で最も重要なリソースは、カスタマー マスター キー (CMK) です。ユーザー管理の CMK とは、ユーザーが作成、管理、使用する CMK です。これに対し、AWS 管理の CMK は、ユーザーではなく、AWS KMS と統合された AWS サービスによって作成、管理、使用されます。

これには、暗号化操作での CMK の使用だけでなく、CMK の有効化と無効化、暗号化マテリアルのローテーション、CMK に対するアクセスを制御する IAM ポリシーとキー ポリシーの確立が含まれます。

SQS キューの SSE はユーザー管理の CMK を使用して行われるので、SNS トピックで、その暗号化キーを使用してキューに送信するメッセージを暗号化/復号化できる必要があります。そのためには、SNS サービスで暗号化キーを利用できるように、暗号化キーのポリシーを変更する必要があります。

ユーザーが管理する CMK への権限の追加

AWS マネジメント コンソールにログインし、AWS Identity and Access Management (IAM) コンソールを開きます。次の手順に従います。

  1. 左側のナビゲーション ペインで、[暗号化キー] を選択します。

  2. [リージョン] で、適切な AWS リージョンを選択します。

  3. キー ポリシー ドキュメントを編集する CMK のエイリアスを選択します。

  4. [キー ポリシー] 行で、[ポリシーに切り替え] ビューを選択します。

  5. キー ポリシーに次のステートメントを追加します。

    {
         "Sid": "Allow SNS to use CMK",
         "Effect": "Allow",
         "Principal": {
           "Service": "sns.amazonaws.com"
         },
         "Action": [
           "kms:GenerateDataKey*",
           "kms:Decrypt"
         ],
         "Resource": "*"
        }

NSX Advanced Load Balancer ユーザー インターフェイスを使用して SQS キュー暗号化を有効にできるのは、次の AWS リージョンのみです。

  • 米国東部(バージニア州北部)

  • 米国東部(オハイオ州)

  • 米国西部(オレゴン州)

プレースホルダに記載されている手順に従って、NSX Advanced Load Balancer で SNS-SQS 暗号化を構成します。