Canary アーティファクトの暗号化 - Amazon CloudWatch

Canary アーティファクトの暗号化

CloudWatch Synthetics は、スクリーンショット、HAR ファイル、レポートなどの Canary アーティファクトを Amazon S3 バケットに保存します。デフォルトでは、これらのアーティファクトは保存時に AWS マネージドキーを使用して暗号化されます。詳細については、「AWS マネージドキー」を参照してください。

また、別の暗号化オプションを使用することも選択できます。CloudWatch Synthetics では、以下がサポートされています。

  • SSE-S3 – Amazon S3 マネージドキーを使用したサーバー側の暗号化 (SSE)

  • SSE-KMS – AWS KMS カスタマー管理キーを使用したサーバー側の暗号化 (SSE)。

AWS マネージドキーを使用するデフォルトの暗号化オプションを選択する場合には、追加のアクセス許可は必要ありません。

SSE-S3 暗号化を使用するには、Canary を作成または更新する際に、暗号化モードとして SSE_S3 を指定します。この暗号化モードを使用するのであれば、追加のアクセス許可は必要ありません。詳細については、「Amazon S3 が管理する暗号化キーによるサーバー側の暗号化 (SSE-S3) を使用したデータの保護」を参照してください。

AWS KMS のカスタマー管理キーを使用するには、Canary を作成または更新する際に、暗号化モードとして SSE-KMS を指定し、同時にキーの Amazon リソースネーム (ARN) も指定します。また、クロスアカウントの KMS キーを使用することもできます。

カスタマー管理のキーを使用するには、次の設定が必要です。

  • Canary の IAM ロールには、自分のキーを使用してアーティファクトを暗号化するためのアクセス許可が必要です。ビジュアルモニタリングを使用している場合は、アーティファクトを復号するためのアクセス許可も、同時に付与する必要があります。

    { "Version": "2012-10-17", "Statement": {"Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "Your KMS key ARN" } }
  • IAM ロールにアクセス許可を追加する代わりに、キーポリシーに IAM ロールを追加することもできます。複数の Canary に同じロールを使用する場合は、このアプローチも考慮に入れてください。

    { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "Your synthetics IAM role ARN" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*" }
  • クロスアカウントの KMS キーを使用している場合は、「他のアカウントのユーザーに KMS キーの使用を許可する」を参照してください。

カスタマー管理キーの使用時に暗号化された Canary アーティファクトを表示する

Canary アーティファクトを表示するには、使用しているカスタマー管理キーを更新して、アーティファクトを表示しているユーザーに対する復号化を AWS KMS に許可します。または、アーティファクトを表示している IAM ユーザーまたは IAM ロールに、復号化のためのアクセス許可を追加します。

デフォルトの AWS KMS ポリシーでは、アカウント内の IAM ポリシーが、KMS キーへのアクセス許可を付与できるようにします。クロスアカウントの KMS キーを使用している場合は、「Why are cross-account users getting Access Denied errors when they try to access Amazon S3 objects encrypted by a custom AWS KMS key?」を参照してください。

KMS キーが原因でアクセスが拒否される問題のトラブルシューティングについては、「キーアクセスのトラブルシューティング」を参照してください。

ビジュアルモニタリング使用時のアーティファクトの場所と暗号化の更新

ビジュアルモニタリングを実行する CloudWatch Synthetics では、ユーザーのスクリーンショットと、(ベースラインとして選択された実行中に) 取得されたベースラインスクリーンショットとを比較します。アーティファクトの場所または暗号化オプションを更新する場合は、以下のいずれかを実行する必要があります。

  • アーティファクト用の以前の Amazon S3 ロケーションと新しい Amazon S3 ロケーションの両方に対する十分なアクセス許可が、IAM ロールに付与済みであることを確認します。同時に、以前の暗号化手段と新しい暗号化手段の両方、ならびに KMS キーに対するアクセス許可があることも確認します。

  • 次に新しいベースラインとする Canary 実行を選択して、新しいベースラインを作成します。このオプションを使用する場合、IAM ロールに付与する必要があるのは、新しいアーティファクトの場所と暗号化オプションに対する、十分なアクセス許可のみです。

新しくベースラインとする実行を選択する際は、この 2 番目のオプションをお勧めします。これにより、Canary で今後使用しないアーティファクトの場所や暗号化オプションへの依存関係が必要なくなります。

例えば Canary が、アーティファクトのアップロードにアーティファクトの場所 A と KMS キー K を使用しているとします。この Canary で、アーティファクトの場所を B に、KMS キー を L に更新する際には、アーティファクトの場所 (A と B) と KMS キー (K と L) のそれぞれ両方に対するアクセス許可が、IAM ロールに付与されている必要があります。あるいは、次にベースラインとする新しい実行を選択することで、アーティファクトの場所 B と KMS キー L に対するアクセス許可を、Canary IAM ロールが持っていることを確認できます。