Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

Step Functions での保管中のデータの暗号化

フォーカスモード
Step Functions での保管中のデータの暗号化 - AWS Step Functions

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

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

AWS Step Functions は、常に透過的なサーバー側の暗号化を使用して保管中のデータを暗号化します。保管中のデータをデフォルトで暗号化して、機密データの保護に伴う運用上のオーバーヘッドと複雑な作業を軽減します。セキュリティを重視したアプリケーションを構築して、暗号化のコンプライアンスと規制の厳格な要件を満たすことができます。

この暗号化レイヤーを無効にしたり、別の暗号化タイプを選択したりすることはできませんが、ステートマシンとアクティビティリソースを作成するときにカスタマーマネージドキーを選択することで、既存の AWS 所有の暗号化キーに 2 番目の暗号化レイヤーを追加できます。

  • カスタマーマネージドキー — Step Functions は、ユーザーが作成、所有、管理する対称カスタマーマネージドキーの使用をサポートし、既存の AWS 所有暗号化に 2 番目の暗号化レイヤーを追加します。この暗号化層はユーザーが完全に制御できるため、次のようなタスクを実行できます。

    • キーポリシーの策定と維持

    • IAM ポリシーとグラントの策定と維持

    • キーポリシーの有効化と無効化

    • キー暗号化マテリアルのローテーション

    • タグの追加

    • キーエイリアスの作成

    • キー削除のスケジュール設定

    詳細については、「AWS Key Management Service デベロッパーガイド」の「カスタマーマネージドキー」を参照してください。

AWS Step Functions ステートマシンとアクティビティのカスタマーマネージドキーを使用してデータを暗号化できます。ステートマシンを作成または更新するとき、およびアクティビティを作成するときに、対称 AWS KMS キーとデータキーの再利用期間を設定できます。実行履歴とステートマシン定義は、ステートマシンに適用されたキーで暗号化されます。アクティビティ入力は、アクティビティに適用されたキーで暗号化されます。

カスタマーマネージド AWS KMS キーを使用すると、保護対象の医療情報 (PHI) を含む顧客データを不正アクセスから保護できます。Step Functions は CloudTrail と統合されているため、イベント履歴の CloudTrail コンソールで最新のイベントを表示および監査できます。

詳細については AWS KMS、「 とは」を参照してください AWS Key Management Service。

注記

Step Functions は、 AWS 所有キーを使用して保管時の暗号化を無料で自動的に有効にします。ただし、カスタマーマネージドキーを使用する場合は AWS KMS 料金が適用されます。料金については、「AWS Key Management Service の料金」を参照してください。

カスタマーマネージドキーでの暗号化

Step Functions は、ペイロードデータをカスタマーマネージド AWS KMS キーで復号してから、別のサービスに渡してタスクを実行します。Transport Layer Security (TLS) を使用して、転送中のデータを暗号化します。

統合サービスからデータが返されると、Step Functions はカスタマーマネージド AWS KMS キーを使用してデータを暗号化します。同じキーを使用して、多くの AWS サービスに暗号化を一貫して適用できます。

カスタマーマネージドキーを指定して、次のリソースを暗号化できます。

  • ステートマシン - Standard および Express の両方のワークフロータイプ

  • アクティビティ

データキーを指定するには、Step Functions がデータの暗号化に使用する KMS キー ID を入力します。

  • KMS キー ID — キー ID、キー ARN、エイリアス名、またはエイリアス ARN の形式の AWS KMS カスタマーマネージドキーのキー識別子。

カスタマーマネージドキーを使用してステートマシンを作成する

前提条件: カスタマーマネージド AWS KMS キーを使用してステートマシンを作成する前に、ユーザーまたはロールに DescribeKeyおよび へのアクセス AWS KMS 許可が必要ですGenerateDataKey

次の手順は、 AWS コンソール、 API、または AWS CloudFormation リソースを通じてインフラストラクチャをプロビジョニングすることで実行できます。(CloudFormation の例は、このガイドの後半で説明します。)

ステップ 1: AWS KMS キーを作成する

対称カスタマーマネージドキーは、 AWS KMS コンソールまたは AWS KMS APIs を使用して作成できます。

対称カスタマーマネージドキーを作成するには

AWS Key Management Service デベロッパーガイド にある 対称カスタマーマネージドキーの作成 ステップに従います。

注記

オプション: キーを作成する際、キー管理者を選択できます。選択したユーザーまたはロールには、API を使用してキーを有効または無効にするなど、キーを管理するアクセス権限が付与されます。キーユーザーを選択することもできます。これらのユーザーまたはロールには、暗号化オペレーションで AWS KMS キーを使用する権限が付与されます。

ステップ 2: AWS KMS キーポリシーを設定する

キーポリシーは、カスタマーマネージドキーへのアクセスを制御します。すべてのカスタマーマネージドキーには、キーポリシーが 1 つだけ必要です。このポリシーには、そのキーを使用できるユーザーとその使用方法を決定するステートメントが含まれています。キーポリシーは、カスタマーマネージドキーの作成時に指定できます。詳細については、「AWS Key Management Service デベロッパーガイド」の「Managing access to customer managed keys」を参照してください。

以下は、 AWS KMS キー管理者またはキーユーザーを含まない、コンソールからのキーポリシーの例です。

{ "Version": "2012-10-17", "Id": "key-consolepolicy-1", "Statement": [ { "Sid": "Enable IAM User Permissions for the key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": "kms:*", "Resource": "*" } ] }

ポリシーのアクセス権限の指定およびキーアクセスのトラブルシューティングの詳細については、「AWS Key Management Service デベロッパーガイド」を参照してください。

ステップ 3: CloudWatch Logs を暗号化するためのキーポリシーを追加する

Step Functions は CloudWatch と統合され、ログ記録とモニタリングを行います。独自の KMS キーを使用してステートマシンのサーバー側の暗号化を有効にし、CloudWatch Log 統合を有効にする場合は、 delivery.logs.amazonaws.comが AWS KMS キーポリシーからkms:Decryptアクションを実行できるようにする必要があります。

{ "Sid": "Enable log service delivery for integrations", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "kms:Decrypt", "Resource": "*" }

AWS KMS キーを使用してステートマシンの暗号化を有効にし、ステートマシンで CloudWatch Logs 統合が有効になっている場合、ステートマシンの実行ロールには次のポリシーが必要です。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowKMSPermissionForCloudWatchLogGroup", "Effect": "Allow", "Action": "kms:GenerateDataKey", "Resource": "arn:aws:kms:region:accountId:key/keyId", "Condition": { "StringEquals": { "kms:EncryptionContext:SourceArn": "arn:aws:logs:region:accountId:*" } } } ] }

ステップ 4: CloudWatch ロググループを暗号化する (オプション)

独自の AWS KMS キーを使用して、CloudWatch Log Group のログの暗号化を有効にできます。そのためには、その AWS KMS キーに次のポリシーも追加する必要があります。

注記

同じキーまたは異なる AWS KMS キーを選択して、ログとステートマシン定義を暗号化できます。

{ "Id": "key-consolepolicy-logging", "Version": "2012-10-17", "Statement": [ { "Sid": "Enable log service for a single log group", "Effect": "Allow", "Principal": { "Service": "logs.region.amazonaws.com" }, "Action": [ "kms:Encrypt*", "kms:Decrypt*", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:Describe*" ], "Resource": "*", "Condition": { "ArnEquals": { "kms:EncryptionContext:aws:logs:arn": "arn:aws:logs:region:account-id:log-group:log-group-name" } } } ] }
注記

Condition セクションでは、 AWS KMS キーを単一のロググループ ARN に制限します。

注記

ロググループの AWS KMS キーに対するアクセス許可の設定の詳細については、CloudWatch Logs のドキュメントを参照してください。

ステップ 5: ステートマシンを作成する

キーを作成してポリシーを設定したら、キーを使用して新しいステートマシンを作成できます。

ステートマシンを作成する際は、[追加の設定] を選択し、カスタマーマネージドキーで暗号化することを選択します。その後、キーを選択し、データキーの再利用期間を 1 分から 15 分に設定できます。

必要に応じて、ログレベルを設定し、 AWS KMS キーを使用してロググループを暗号化することを選択することで、ログ記録を有効にできます。

注記

Step Functions コンソールでは、新しいロググループでのみ暗号化を有効にできます。 AWS KMS キーを既存のロググループに関連付ける方法については、AWS KMS 「キーをロググループに関連付ける」を参照してください。

カスタマーマネージドキーを使用して Standard ワークフローと非同期 Express ワークフローの実行を正常に開始するには、実行ロールに kms:Decrypt および kms:GenerateDataKey アクセス許可が必要です。同期 Express 実行の実行ロールには kms:Decrypt が必要です。コンソールでステートマシンを作成し、[新しいロールの作成] を選択すると、これらのアクセス許可が自動的に含まれます。

実行ロールのポリシーの例を次に示します。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowKMSPermissionsForStepFunctionsWorkflowExecutions", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:us-east-1:123456789012:key/keyId" ], "Condition": { "StringEquals": { "kms:EncryptionContext:aws:states:stateMachineArn": [ "arn:aws:states:us-east-1:123456789012:stateMachine:stateMachineName" ] } } } ] }

ステップ 6: AWS KMS キーで暗号化されたステートマシンを呼び出す

暗号化されたステートマシンは通常どおり呼び出すことができ、データはカスタマーマネージドキーで暗号化されます。

カスタマーマネージドキーを使用してアクティビティを作成する

カスタマーマネージドキーを使用して Step Functions アクティビティを作成することは、カスタマーマネージドキーを使用してステートマシンを作成するのと似ています。カスタマーマネージド AWS KMS キーを使用してアクティビティを作成する前に、ユーザーまたはロールに必要なのは に対する AWS KMS アクセス許可のみですDescribeKey。アクティビティの作成時に、キーを選択し、暗号化設定パラメータを設定します。

Step Functions アクティビティリソースは変更できないままであることに注意してください。既存のアクティビティのアクティビティ ARN の encryptionConfiguration を更新することはできません。新しいアクティビティリソースを作成する必要があります。Activity API エンドポイントへの呼び出し元には、 AWS KMS キーを使用してアクティビティを正常に作成するためのkms:DescribeKeyアクセス許可が必要です。

アクティビティタスクでカスタマーマネージドキー暗号化が有効になっている場合、ステートマシン実行ロールはアクティビティキーに kms:GenerateDataKey および kms:Decrypt アクセス許可を要求します。Step Functions コンソールからこのステートマシンを作成する場合、自動ロール作成機能によってこれらのアクセス許可が追加されます。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowKMSPermissionsForStepFunctionsActivities", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:us-east-1:123456789012:key/keyId" ], "Condition": { "StringEquals": { "kms:EncryptionContext:aws:states:activityArn": [ "arn:aws:states:us-east-1:123456789012:activity:activityName" ] } } } ] }

条件付きの AWS KMS アクセス許可ポリシーの範囲を絞り込む

対称カスタマーマネージドキーへのアクセスを制御するために、キーポリシーと IAM ポリシー内の暗号化コンテキストconditions として使用することもできます。特定のロールに代わって Step Functions からのリクエストに AWS KMS キーの使用を制限するには、 kms:ViaService条件を使用できます。

暗号化コンテキストを使用したスコーピング

暗号化コンテキストは、データに関する追加のコンテキスト情報を含むキーと値のペアのオプションセットです。

AWS KMS は、追加の認証データとして暗号化コンテキストを使用して、認証された暗号化をサポートします。データの暗号化リクエストに暗号化コンテキストを含めると、 は暗号化コンテキストを暗号化されたデータに AWS KMS バインドします。データを復号化するには、そのリクエストに (暗号化時と) 同じ暗号化コンテキストを含めます。

Step Functions は、 AWS KMS 暗号化オペレーションで暗号化コンテキストを提供します。キーはaws:states:stateMachineArnステートマシンの場合は 、アクティビティaws:states:activityArnの場合は 、値はリソース Amazon リソースネーム (ARN) です。

"encryptionContext": {"aws:states:stateMachineArn": "arn:aws:states:us-east-1:123456789012:stateMachine:stateMachineName"}
"encryptionContext": {"aws:states:activityArn": "arn:aws:states:us-east-1:123456789012:activity:activityName"}

次の例は、 kms:EncryptionContextおよび aws:states:stateMachineArnコンテキスト AWS KMS キーを使用して、実行ロールのキーの使用を特定のステートマシンに制限する方法を示しています。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow KMS Permissions for StepFunctionsWorkflowExecutions", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:us-east-1:123456789012:key/keyId" ], "Condition": { "StringEquals": { "kms:EncryptionContext:aws:states:stateMachineArn": "arn:aws:states:us-east-1:123456789012:stateMachine:stateMachineName" } } } ] }

kms:ViaService を使用したスコーピング

kms:ViaService 条件キーは、 AWS Key Management Service キーの使用を、指定された AWS サービスからのリクエストに制限します。

次のポリシー例では、 kms:ViaService条件を使用して、リクエストが ca-central-1リージョンの Step Functions から発信され、ExampleRole に代わって動作する場合にのみ、 AWS KMS キーを特定のアクションに使用できるようにします。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow access for Key Administrators in a region", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/ExampleRole" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "states.us-east-1.amazonaws.com" } } } ] }
注記

このkms:ViaService条件は、API 発信者が AWS KMS アクセス許可を必要とする場合にのみ適用できます (、CreateStateMachineCreateActivityGetActivityTaskなど)。実行ロールkms:ViaService 条件を追加すると、新しい実行の開始が妨げられたり、実行中の実行が失敗したりする可能性があります。

API 発信者に必要なアクセス許可

暗号化されたデータを返す Step Functions API アクションを呼び出すには、発信者に AWS KMS アクセス許可が必要です。または、一部の API アクションには、メタデータのみを返すオプション (METADATA_ONLY) があり、 AWS KMS アクセス許可の要件が削除されます。詳細については、Step Functions API を参照してください。

カスタマーマネージドキー暗号化の使用時に実行を正常に完了するには、ステートマシンで使用される AWS KMS キーに対する実行ロールkms:GenerateDataKeykms:Decryptアクセス許可を付与する必要があります。

次の表は、ステートマシンの AWS KMS キーAPIs を使用して API の Step Functions API 発信者に提供する必要がある AWS KMS アクセス許可を示しています。ロールのキーポリシーまたは IAM ポリシーにアクセス許可を付与できます。

ステートマシンの AWS KMS キーを使用する API 発信者が必須
CreateStateMachine kms:DescribeKey、kms:GenerateDataKey
UpdateStateMachine kms:DescribeKey、kms:GenerateDataKey
DescribeStateMachine kms:Decrypt
DescribeStateMachineForExecution kms:Decrypt
StartExecution --
StartSyncExecution kms:Decrypt
SendTaskSuccess --
SendTaskFailure --
StopExecution --
RedriveExecution --
DescribeExecution kms:Decrypt
GetExecutionHistory kms:Decrypt

次の表は、アクティビティの AWS KMS キーAPIs を使用して API の Step Functions API 発信者に提供する必要がある AWS KMS アクセス許可を示しています。ロールのキーポリシーまたは IAM ポリシーでアクセス許可を付与できます。

アクティビティの AWS KMS キーを使用する API 発信者が必須
CreateActivity kms:DescribeKey
GetActivityTask kms:Decrypt
発信者または実行ロールにアクセス許可を付与するタイミング

IAM ロールまたはユーザーが Step Functions API を呼び出すと、Step Functions サービスは API 発信者 AWS KMS に代わって を呼び出します。この場合、API 発信者にアクセス AWS KMS 許可を付与する必要があります。実行ロール AWS KMS が直接 を呼び出す場合は、実行ロールに対する AWS KMS アクセス許可を付与する必要があります。

AWS CloudFormation 暗号化設定の リソース

AWS CloudFormation Step Functions の リソースタイプは、暗号化設定を使用してステートマシンとアクティビティリソースをプロビジョニングできます。

デフォルトでは、Step Functions は透過的なサーバー側の暗号化を提供します。AWS::StepFunctions::Activity と の両方が、サーバー側の暗号化用にカスタマーマネージド AWS KMS キーを設定できるオプションの EncryptionConfigurationプロパティAWS::StepFunctions::StateMachineを受け入れます。

前提条件: カスタマーマネージド AWS KMS キーを使用してステートマシンを作成する前に、ユーザーまたはロールに DescribeKeyおよび へのアクセス AWS KMS 許可が必要ですGenerateDataKey

StateMachine の更新には、中断は必要ありません。アクティビティリソースの更新には、置換が必要です。

AWS CloudFormation テンプレートで EncryptionConfigurationプロパティを宣言するには、次の構文を使用します。

JSON

{ "KmsKeyId" : String, "KmsDataKeyReusePeriodSeconds" : Integer, "Type" : String }

YAML

KmsKeyId: String KmsDataKeyReusePeriodSeconds: Integer Type: String

プロパティ

  • タイプ - ステートマシンまたはアクティビティの暗号化オプション。許可される値: CUSTOMER_MANAGED_KMS_KEY | AWS_OWNED_KEY

  • KmsKeyId - データキーを暗号化する対称暗号化 AWS KMS キーのエイリアス、エイリアス ARN、キー ID、またはキー ARN。別の AWS アカウントで AWS KMS キーを指定するには、顧客はキー ARN またはエイリアス ARN を使用する必要があります。kmsKeyId の詳細については、 AWS KMS 「 ドキュメント」のKeyId」を参照してください。

  • KmsDataKeyReusePeriodSeconds - SFN がデータキーを再利用する最大期間。期間が終了すると、Step Functions は GenerateDataKey を呼び出します。この設定は、TypeCUSTOMER_MANAGED_KMS_KEY の場合にのみ設定できます。値の範囲は 60~900 秒です。デフォルトは 300 秒です。

AWS CloudFormation 例

例: カスタマーマネージドキーを使用した StateMachine

AWSTemplateFormatVersion: '2010-09-09' Description: An example template for a Step Functions State Machine. Resources: MyStateMachine: Type: AWS::StepFunctions::StateMachine Properties: StateMachineName: HelloWorld-StateMachine Definition: StartAt: PassState States: PassState: Type: Pass End: true RoleArn: !Sub "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/example" EncryptionConfiguration: KmsKeyId: !Ref MyKmsKey KmsDataKeyReusePeriodSeconds: 100 Type: CUSTOMER_MANAGED_KMS_KEY MyKmsKey: Type: AWS::KMS::Key Properties: Description: Symmetric KMS key used for encryption/decryption

例: カスタマーマネージドキーを使用したアクティビティ

AWSTemplateFormatVersion: '2010-09-09' Description: An example template for a Step Functions Activity. Resources: Activity: Type: AWS::StepFunctions::Activity Properties: Name: ActivityWithKmsEncryption EncryptionConfiguration: KmsKeyId: !Ref MyKmsKey KmsDataKeyReusePeriodSeconds: 100 Type: CUSTOMER_MANAGED_KMS_KEY MyKmsKey: Type: AWS::KMS::Key Properties: Description: Symmetric KMS key used for encryption/decryption

アクティビティの暗号化を更新するには新しいリソースの作成が必要

アクティビティ設定はイミュータブルであり、リソース名は一意である必要があります。暗号化にカスタマーマネージドキーを設定するには、新しいアクティビティを作成する必要があります。既存のアクティビティの CFN テンプレートで設定を変更しようとすると、ActivityAlreadyExists の例外が表示されます。

カスタマーマネージドキーを含めるようにアクティビティを更新するには、CFN テンプレート内に新しいアクティビティ名を設定します。カスタマーマネージドキー設定で新しいアクティビティを作成する例を次に示します。

既存のアクティビティ定義

AWSTemplateFormatVersion: '2010-09-09' Description: An example template for a new Step Functions Activity. Resources: Activity: Type: AWS::StepFunctions::Activity Properties: Name: ActivityName EncryptionConfiguration: Type: AWS_OWNED_KEY

新しいアクティビティ定義

AWSTemplateFormatVersion: '2010-09-09' Description: An example template for a Step Functions Activity. Resources: Activity: Type: AWS::StepFunctions::Activity Properties: Name: ActivityWithKmsEncryption EncryptionConfiguration: KmsKeyId: !Ref MyKmsKey KmsDataKeyReusePeriodSeconds: 100 Type: CUSTOMER_MANAGED_KMS_KEY MyKmsKey: Type: AWS::KMS::Key Properties: Description: Symmetric KMS key used for encryption/decryption

暗号化キー使用のモニタリング

AWS KMS カスタマーマネージドキーを使用して Step Functions リソースを暗号化する場合、CloudTrail を使用して Step Functions が送信するリクエストを追跡できます AWS KMS。

また、カスタマー管理キーがどのように使用されているかを特定するために、暗号化コンテキストを監査レコードおよびログで使用することもできます。暗号化コンテキストは、AWS CloudTrail が生成したログにも表示されます。

次の例はDecrypt、カスタマーマネージドキーによって暗号化されたデータにアクセスするために Step Functions によって呼び出される AWS KMS オペレーションをモニタリングGenerateDataKeyするための、、DescribeKey、および の CloudTrail イベントです。

Decrypt

ユーザーが暗号化されたステートマシンまたはアクティビティにアクセスすると、Step Functions は Decrypt オペレーションを呼び出し、保存されている暗号化されたデータキーを使用して暗号化済みのデータにアクセスします。

次に、Decrypt オペレーションを記録するイベントの例を示します。

{ "eventVersion": "1.09", "userIdentity": { "type": "AssumedRole", "principalId": "111122223333:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "accessKeyId": "ASIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "111122223333:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "userName": "Admin" }, "attributes": { "creationDate": "2024-07-05T21:06:27Z", "mfaAuthenticated": "false" } }, "invokedBy": "states.amazonaws.com" }, "eventTime": "2024-07-05T21:12:21Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "aa-example-1", "sourceIPAddress": "states.amazonaws.com", "userAgent": "states.amazonaws.com", "requestParameters": { "encryptionAlgorithm": "SYMMETRIC_DEFAULT", "keyId": "arn:aws:kms:aa-example-1:111122223333:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "encryptionContext": { "aws:states:stateMachineArn": "arn:aws:states:aa-example-1:111122223333:stateMachine:example1" } }, "responseElements": null, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:aa-example-1:111122223333:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }
DescribeKey

Step Functions は DescribeKey オペレーションを使用して、ステートマシンまたはアクティビティに関連付けられた AWS KMS カスタマーマネージドキーがアカウントとリージョンに存在するかどうかを確認します。

次に、DescribeKey オペレーションを記録するイベントの例を示します。

{ "eventVersion": "1.09", "userIdentity": { "type": "AssumedRole", "principalId": "111122223333:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "accessKeyId": "ASIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "111122223333:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "userName": "Admin" }, "attributes": { "creationDate": "2024-07-05T21:06:27Z", "mfaAuthenticated": "false" } }, "invokedBy": "states.amazonaws.com" }, "eventTime": "2024-07-05T21:12:21Z", "eventSource": "kms.amazonaws.com", "eventName": "DescribeKey", "awsRegion": "aa-example-1", "sourceIPAddress": "states.amazonaws.com", "userAgent": "states.amazonaws.com", "requestParameters": { "keyId": "arn:aws:kms:aa-example-1:111122223333:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" }, "responseElements": null, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:aa-example-1:111122223333:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management", "sessionCredentialFromConsole": "true" }
GenerateDataKey

ステートマシンまたはアクティビティの AWS KMS カスタマーマネージドキーを有効にすると、Step Functions は暗号化ステートマシン定義または実行データにデータキーを取得するGenerateDataKeyリクエストを送信します。

次に、GenerateDataKey オペレーションを記録するイベントの例を示します。

{ "eventVersion": "1.09", "userIdentity": { "type": "AssumedRole", "principalId": "111122223333:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "accessKeyId": "ASIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "111122223333:Sampleuser01", "arn": "arn:aws:iam::111122223333:role/Admin", "accountId": "111122223333", "userName": "Admin" }, "attributes": { "creationDate": "2024-07-05T21:06:27Z", "mfaAuthenticated": "false" } }, "invokedBy": "states.amazonaws.com" }, "eventTime": "2024-07-05T21:12:21Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKey", "awsRegion": "aa-example-1", "sourceIPAddress": "states.amazonaws.com", "userAgent": "states.amazonaws.com", "requestParameters": { "keySpec": "AES_256", "encryptionContext": { "aws:states:stateMachineArn": "arn:aws:states:aa-example-1:111122223333:stateMachine:example1" }, "keyId": "arn:aws:kms:aa-example-1:111122223333:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" }, "responseElements": null, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:aa-example-1:111122223333:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }

ユーザーが暗号化されたステートマシンまたはアクティビティにアクセスすると、Step Functions は Decrypt オペレーションを呼び出し、保存されている暗号化されたデータキーを使用して暗号化済みのデータにアクセスします。

次に、Decrypt オペレーションを記録するイベントの例を示します。

{ "eventVersion": "1.09", "userIdentity": { "type": "AssumedRole", "principalId": "111122223333:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "accessKeyId": "ASIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "111122223333:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "userName": "Admin" }, "attributes": { "creationDate": "2024-07-05T21:06:27Z", "mfaAuthenticated": "false" } }, "invokedBy": "states.amazonaws.com" }, "eventTime": "2024-07-05T21:12:21Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "aa-example-1", "sourceIPAddress": "states.amazonaws.com", "userAgent": "states.amazonaws.com", "requestParameters": { "encryptionAlgorithm": "SYMMETRIC_DEFAULT", "keyId": "arn:aws:kms:aa-example-1:111122223333:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "encryptionContext": { "aws:states:stateMachineArn": "arn:aws:states:aa-example-1:111122223333:stateMachine:example1" } }, "responseElements": null, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:aa-example-1:111122223333:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }

よくある質問

キーが削除対象としてマークされているか、 AWS KMSで削除済みの場合はどうなりますか?

キーが削除されたり、削除対象としてマークされたりすると AWS KMS、関連する実行中の実行は失敗します。ワークフローに関連付けられたキーを削除または変更するまで、新しい実行を開始することはできません。 AWS KMS キーを削除すると、ワークフロー実行に関連付けられたすべての暗号化されたデータは暗号化されたままになり、復号化できなくなり、データは回復できなくなります

で AWS KMS キーが無効になっている場合はどうなりますか AWS KMS?

で AWS KMS キーが無効になっている場合 AWS KMS、関連する実行中の実行は失敗します。新しい実行を開始することはできません。その無効な AWS KMS キーで暗号化されたデータは、再度有効になるまで復号できなくなります。

EventBridge に送信された実行ステータスの変更イベントはどうなりますか。

カスタマーマネージド AWS KMS キーを使用して暗号化されたワークフローの実行ステータス変更イベントには、実行入力、出力、エラー、および原因は含まれません。

詳細

保管中のデータ暗号化の詳細については、「AWS Key Management Service デベロッパーガイド」の「AWS Key Management Service concepts」および「security best practices for AWS Key Management Service」を参照してください。

プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.