AWS KMS キーを使用した EventBridge 接続認可の暗号化 - Amazon EventBridge

AWS KMS キーを使用した EventBridge 接続認可の暗号化

接続を作成または更新するときに、その接続の認可パラメータを指定できます。その後、EventBridge はこれらのパラメータを AWS Secrets Manager のシークレットに安全に保存します。デフォルトでは、EventBridge は AWS 所有のキーを使用してこのシークレットを暗号化および復号します。代わりに、EventBridge がカスタマーマネージドキーを使用するように指定できます。

接続の AWS KMS キーポリシー

AWS KMS キーポリシーは、EventBridge にユーザーに代わる次のアクセス許可を付与する必要があります。

  • kms:DescribeKey

  • kms:GenerateDataKey

  • kms:Decrypt

以下のポリシーの例は、AWS KMS のアクセス許可をすべて付与します。

JSON
{ "Id": "key-policy-example", "Version":"2012-10-17", "Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::012345678901:root" }, "Action": "kms:*", "Resource": "*" } ] }

EventBridge がカスタマーマネージドキーを使用するには、キーが EventBridgeApiDestinations、値が true のリソースタグをキーに追加する必要があります。リソースタグの詳細については、AWS Key Management Service デベロッパーガイドの「KMS キーにタグを追加する」を参照してください。

セキュリティのベストプラクティスとして、EventBridge が指定されたリソースまたはアカウントに対してのみ KMS キーを使用するよう、キーポリシーに条件キーを含めることをお勧めします。詳細については、「セキュリティに関する考慮事項」を参照してください。

"Condition": { "StringLike": { "kms:ViaService": "secretsmanager.*.amazonaws.com", "kms:EncryptionContext:SecretARN": [ "arn:aws:secretsmanager:*:*:secret:events!connection/*" ] }, "StringEquals": { "aws:ResourceTag/EventBridgeApiDestinations": "true" } }

接続暗号化コンテキスト

暗号化コンテキストは、一連のキー値のペアおよび任意非シークレットデータを含みます。データを暗号化するリクエストに暗号化コンテキストを組み込むと、AWS KMS は暗号化コンテキストを暗号化されたデータに暗号化してバインドします。データを復号するには、同じ暗号化コンテキストに渡す必要があります。

また、暗号化コンテクストはポリシーとグラントの認可用の条件としても使用できます。

カスタマー管理のキーを使用して EventBridge リソースを保護している場合は、暗号化コンテキストを使って監査レコードやログの中で KMS key の使用を特定することができます。また、AWS CloudTrailAmazon CloudWatch Logs などのログにもプレーンテキストで表示されます。

接続に対し、EventBridge は、すべての AWS KMS 暗号化オペレーションで同じ暗号化コンテキストを使用します。コンテキストには、シークレット ARN を含む 1 つのキーと値のペアが含まれます。

"encryptionContext": { "kms:EncryptionContext:SecretARN": "secret-arn" }

クロスアカウントまたはクロスリージョンのカスタマーマネージドキーを接続に使用する

異なる AWS アカウントで、ユーザーまたはロールに、アカウントの KMS キーの使用を許可できます。クロスアカウントアクセスには、KMS キーのキーポリシーと、外部ユーザーアカウントの IAM ポリシーのアクセス許可が必要です。

別のアカウントのカスタマーマネージドキーを使用するには、カスタマーマネージドキーを持つアカウントに次のポリシーが含まれている必要があります。

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account:role/AmazonEventBridgeApiDestinationsInternalServiceRolePolicy" }, "Action": [ "kms:Decrypt", "kms:DescribeKey" ], "Resource": "*" }

詳細については、AWS Key Management Service デベロッパーガイドの「他のアカウントのユーザーに KMS キーの使用を許可する」を参照してください。

接続へのカスタマーマネージドキーアクセスを取り消す

キーの無効化、削除、ローテーション、またはキーポリシーの更新により、カスタマーマネージドキーを取り消す場合、EventBridge がキー値をキャッシュしており、そのキーが接続のシークレットへのアクセスを短期間保持する可能性があることに注意してください。

接続のシークレットへのカスタマーマネージドキーアクセスを即座に取り消すには、接続の認可を解除するか、接続を削除します。詳細については、「接続の認可を解除」および「接続の削除」を参照してください。

カスタマーマネージドキーのエラーによる接続の認可解除

接続のシークレットを暗号化または復号しようとしたときに次のエラーが発生した場合、EventBridge は接続の認可を解除します。

  • カスタマーマネージドキーが削除された。

  • カスタマーマネージドキーが無効になった。

  • 接続に、カスタマーマネージドキーにアクセスするために必要なアクセス許可がない。

詳細については、「接続の認可を解除」を参照してください。