쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

Step Functions의 저장 데이터 암호화

포커스 모드
Step Functions의 저장 데이터 암호화 - AWS Step Functions

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

블로그 읽기

AWS Step Functions 는 항상 투명한 서버 측 암호화를 사용하여 저장 데이터를 암호화합니다. 기본적으로 저장된 데이터를 암호화하면 민감한 데이터를 보호하는 데 수반되는 운영 오버헤드와 복잡성을 줄일 수 있습니다. 엄격한 암호화 규정 준수 및 규제 요구 사항이 필요한, 보안에 민감한 애플리케이션을 구축할 수 있습니다.

이 암호화 계층을 비활성화하거나 대체 암호화 유형을 선택할 수는 없지만 상태 시스템 및 활동 리소스를 생성할 때 고객 관리형 키를 선택하여 기존 AWS 소유 암호화 키에 두 번째 암호화 계층을 추가할 수 있습니다.

  • 고객 관리형 키 - Step Functions는 사용자가 생성, 소유 및 관리하는 대칭 고객 관리형 키의 사용을 지원하여 기존 AWS 소유 암호화에 두 번째 암호화 계층을 추가합니다. 이 암호화 계층을 완전히 제어할 수 있으므로 다음과 같은 작업을 수행할 수 있습니다.

    • 키 정책 수립 및 유지

    • IAM 정책 및 권한 부여 수립 및 유지

    • 키 정책 활성화 및 비활성화

    • 키 암호화 자료 교체

    • 태그 추가

    • 키 별칭 만들기

    • 삭제를 위한 스케줄 키

    자세한 내용은 AWS Key Management Service 개발자 안내서고객 관리 키를 참조하세요.

AWS Step Functions 상태 시스템 및 활동에 대한 고객 관리형 키를 사용하여 데이터를 암호화할 수 있습니다. 상태 시스템을 생성하거나 업데이트할 때와 활동을 생성할 때 대칭 AWS KMS 키 및 데이터 키 재사용 기간을 구성할 수 있습니다. 실행 기록 및 상태 시스템 정의는 상태 시스템에 적용된 키로 암호화됩니다. 활동 입력은 활동에 적용된 키로 암호화됩니다.

고객 관리형 AWS KMS 키를 사용하면 보호된 상태 정보(PHI)가 포함된 고객 데이터를 무단 액세스로부터 보호할 수 있습니다. Step Functions는 CloudTrail과 통합되어 있으므로 CloudTrail 콘솔의 이벤트 기록에서 최신 이벤트를 확인하고 감사할 수 있습니다.

에 대한 자세한 내용은 란 무엇입니까 AWS Key Management Service?를 AWS KMS참조하세요.

참고

Step Functions는 AWS 소유 키를 사용하여 저장 시 암호화를 무료로 자동으로 활성화합니다. 그러나 고객 관리형 키를 사용할 때는 AWS KMS 요금이 적용됩니다. 요금에 대한 자세한 정보는 AWS Key Management Service 요금을 참조하세요.

고객 관리형 키를 사용하여 암호화

Step Functions는 작업을 수행하기 위해 다른 서비스에 전달하기 전에 고객 관리형 AWS KMS 키로 페이로드 데이터를 복호화합니다. Transport Layer Security(TLS)를 사용하여 데이터가 전송 중에 암호화됩니다.

통합 서비스에서 데이터가 반환되면 Step Functions는 고객 관리형 AWS KMS 키로 데이터를 암호화합니다. 동일한 키를 사용하여 여러 AWS 서비스에 암호화를 일관되게 적용할 수 있습니다.

다음 리소스를 통해 고객 관리형 키를 사용할 수 있습니다.

  • 상태 시스템 - 표준 워크플로 유형과 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 키 정책 설정

키 정책에서는 고객 관리형 키에 대한 액세스를 제어합니다. 모든 고객 관리형 키에는 키를 사용할 수 있는 사람과 키를 사용하는 방법을 결정하는 문장이 포함된 정확히 하나의 키 정책이 있어야 합니다. 고객 관리형 키를 만들 때 키 정책을 지정할 수 있습니다. 자세한 내용은 AWS Key Management Service 개발자 안내서고객 관리형 키에 대한 액세스 관리를 참조하세요.

다음은 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 로그를 암호화하는 키 정책 추가

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 로그 설명서를 참조하세요.

5단계: 상태 시스템 만들기

키를 생성하고 정책을 설정한 후 키를 사용하여 새 상태 시스템을 생성할 수 있습니다.

상태 시스템을 생성할 때 추가 구성을 선택한 다음 고객 관리형 키로 암호화하도록 선택합니다. 그런 다음 키를 선택하고 데이터 키 재사용 기간을 1분에서 15분으로 설정할 수 있습니다.

선택적으로 로그 수준을 설정하고 AWS KMS 키로 로그 그룹을 암호화하도록 선택하여 로깅을 활성화할 수 있습니다.

참고

Step Functions 콘솔에서 새 로그 그룹에 대해서만 암호화를 활성화할 수 있습니다. AWS KMS 키를 기존 로그 그룹에 연결하는 방법을 알아보려면 AWS KMS 키를 로그 그룹에 연결을 참조하세요.

고객 관리형 키를 사용하여 표준 워크플로 및 비동기 Express 워크플로에 대한 실행을 성공적으로 시작하려면 실행 역할에 kms:Decryptkms: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을 업데이트할 수 없으며 새 활동 리소스를 생성해야 합니다. 활동 API 엔드포인트에 대한 호출자는 AWS KMS 키로 활동을 성공적으로 생성할 수 있는 kms:DescribeKey 권한이 있어야 합니다.

활동 작업에서 고객 관리형 키 암호화가 활성화되면 상태 시스템 실행 역할에 활동 키에 대한 kms:GenerateDataKeykms: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로 사용하여 대칭형 고객 관리형 키에 대한 액세스를 제어할 수도 있습니다. AWS KMS 키를 특정 역할을 대신하여 Step Functions의 요청으로 사용하도록 제한하려면 kms:ViaService 조건을 사용할 수 있습니다.

암호화 컨텍스트로 범위 지정

암호화 컨텍스트는 데이터에 대한 추가 컨텍스트 정보를 포함하는 선택적 키-값 페어 세트입니다.

AWS KMS 는 암호화 컨텍스트를 추가 인증 데이터로 사용하여 인증된 암호화를 지원합니다. 데이터 암호화 요청에 암호화 컨텍스트를 포함하면는 암호화 컨텍스트를 암호화된 데이터에 AWS KMS 바인딩합니다. 요청에 동일한 암호화 컨텍스트를 포함해야 이 데이터를 해독할 수 있습니다.

Step Functions는 AWS KMS 암호화 작업에서 암호화 컨텍스트를 제공합니다. 여기서 키는 상태 시스템 또는 aws:states:activityArn 활동을 aws:states:stateMachineArn 위한 것이고 값은 리소스 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"}

다음 예제에서는 실행 역할에 대한 AWS KMS 키 사용을 kms:EncryptionContextaws:states:stateMachineArn 컨텍스트 키를 사용하는 특정 상태 시스템으로 제한하는 방법을 보여줍니다.

{ "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에서 시작된 경우에만 특정 작업에 AWS KMS 키를 사용하도록 허용하며 ExampleRole을 대신합니다.

{ "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 호출자(예: , CreateStateMachine, CreateActivity GetActivityTask등)에게 AWS KMS 권한이 필요한 경우에만 적용됩니다. 실행 역할kms:ViaService 조건을 추가하면 새 실행이 시작되지 않거나 실행이 실패할 수 있습니다.

API 호출자에 필요한 권한

암호화된 데이터를 반환하는 Step Functions API 작업을 호출하려면 호출자에 AWS KMS 권한이 필요합니다. 또는 일부 API 작업에는 메타데이터만 반환하는 옵션(METADATA_ONLY)이 있어 AWS KMS 권한 요구 사항이 제거됩니다. 자세한 내용은 Step Functions API를 참조하세요.

고객 관리형 키 암호화를 사용할 때 실행이 성공적으로 완료되려면 실행 역할에 권한을 부여kms:GenerateDataKey하고 상태 시스템에서 사용하는 AWS KMS 키에 대한 kms:Decrypt 권한을 부여해야 합니다.

다음 표에는 상태 머신의 키를 사용하여 API에 대해 Step Functions APIs 호출자에게 제공해야 하는 AWS KMS 권한이 나와 있습니다. 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

다음 표에는 활동 키를 APIs 사용하여 API에 대해 Step Functions API 호출자에게 제공해야 하는 AWS KMS 권한이 나와 있습니다. 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를 호출합니다. 이 설정은 유형CUSTOMER_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에서 생성되는 로그에도 나타납니다.

다음 예제는 고객 관리형 키로 암호화된 데이터에 액세스GenerateDataKey하기 위해 Step Functions에서 호출한 AWS KMS 작업을 모니터링하기 위한 DescribeKey, 및 Decrypt에 대한 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" }

FAQ

내 키가 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 개념AWS Key Management Service의 보안 모범 사례를 참조하세요.

프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.