Lambda 지속성 함수의 보안 및 권한 - AWS Lambda

Lambda 지속성 함수의 보안 및 권한

Lambda 지속성 함수에서 체크포인트 작업을 관리하기 위해 특정 IAM 권한이 필요합니다. 함수에 필요한 권한만 부여하여 최소 권한 원칙을 따르세요.

실행 역할 권한

지속성 함수의 실행 역할에는 체크포인트를 생성하고 실행 상태를 검색할 수 있는 권한이 필요합니다. 다음 정책에서는 필요한 최소 권한을 보여줍니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lambda:CheckpointDurableExecution", "lambda:GetDurableExecutionState" ], "Resource": "arn:aws:lambda:region:account-id:function:function-name:*" } ] }

콘솔을 사용하여 지속성 함수를 생성하면 Lambda는 이러한 권한을 실행 역할에 자동으로 추가합니다. AWS CLI 또는 AWS CloudFormation을 사용하여 함수를 생성하는 경우 실행 역할에 이러한 권한을 추가합니다.

최소 권한 원칙

와일드카드를 사용하는 대신 Resource 요소의 범위를 특정 함수 ARN으로 지정합니다. 이렇게 하면 실행 역할이 필요한 함수에 대해서만 체크포인트 작업으로 제한됩니다.

예제: 여러 함수에 대한 권한 범위

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lambda:CheckpointDurableExecution", "lambda:GetDurableExecutionState" ], "Resource": [ "arn:aws:lambda:us-east-1:123456789012:function:orderProcessor:*", "arn:aws:lambda:us-east-1:123456789012:function:paymentHandler:*" ] } ] }

또는 Amazon CloudWatch Logs에 대한 기본 Lambda 실행 권한과 함께 필요한 지속성 실행 권한이 포함된 AWS 관리형 정책 AWSLambdaBasicDurableExecutionRolePolicy를 사용할 수 있습니다.

상태 암호화

Lambda 지속성 함수는 AWS 소유 키를 무료로 사용하여 저장 시 암호화를 자동으로 활성화합니다. 각 함수 실행은 다른 실행에서 액세스할 수 없는 격리된 상태로 유지됩니다. 고객 관리형 키(CMK)는 지원되지 않습니다.

체크포인트 데이터에는 다음이 포함됩니다.

  • 단계 결과 및 반환 값

  • 실행 진행 상황 및 타임라인

  • 대기 상태 정보

Lambda가 체크포인트 데이터를 읽거나 쓸 때 TLS를 사용하여 모든 데이터가 전송 중 암호화됩니다.

사용자 지정 직렬 변환기 및 역직렬 변환기를 사용한 사용자 지정 암호화

중요한 보안 요구 사항의 경우 지속성 SDK를 사용하여 사용자 지정 직렬 변환기 및 역직렬 변환기(SerDer)를 사용하여 자체 암호화 및 복호화 메커니즘을 구현할 수 있습니다. 이 접근 방식을 사용하면 체크포인트 데이터를 보호하는 데 사용되는 암호화 키와 알고리즘을 완벽하게 제어할 수 있습니다.

중요

사용자 지정 암호화를 사용하면 Lambda 콘솔 및 API 응답에서 작업 결과를 볼 수 없습니다. 체크포인트 데이터는 실행 내역에서 암호화되어 표시되고 복호화를 사용하지 않고는 검사할 수 없습니다.

함수의 실행 역할에는 사용자 지정 SerDer 구현에 사용되는 AWS KMS 키에 대한 kms:Encryptkms:Decrypt 권한이 필요합니다.

CloudTrail 로깅

Lambda는 체크포인트 작업을 AWS CloudTrail의 데이터 이벤트로 로깅합니다. CloudTrail을 사용하여 체크포인트 생성 시기를 감사하고, 실행 상태 변경을 추적하고, 지속성 실행 데이터에 대한 액세스를 모니터링할 수 있습니다.

체크포인트 작업은 CloudTrail 로그에 다음 이벤트 이름과 함께 표시됩니다.

  • CheckpointDurableExecution - 단계가 완료되고 체크포인트를 생성할 때 로깅됩니다.

  • GetDurableExecutionState - Lambda가 재생 중에 실행 상태를 검색할 때 로깅됩니다.

지속성 함수에 대한 데이터 이벤트 로깅을 활성화하려면 Lambda 데이터 이벤트를 로깅하도록 CloudTrail 추적을 구성합니다. 자세한 내용은 CloudTrail 사용 설명서의 데이터 이벤트 로깅을 참조하세요.

예: 체크포인트 작업에 대한 CloudTrail 로그 항목

{ "eventVersion": "1.08", "eventTime": "2024-11-16T10:30:45Z", "eventName": "CheckpointDurableExecution", "eventSource": "lambda.amazonaws.com", "requestParameters": { "functionName": "myDurableFunction", "executionId": "exec-abc123", "stepId": "step-1" }, "responseElements": null, "eventType": "AwsApiCall" }

크로스 계정 고려 사항

AWS 계정 간에 지속성 함수를 간접 호출하는 경우 호출 계정에 lambda:InvokeFunction 권한이 필요하지만 체크포인트 작업은 항상 함수 계정의 실행 역할을 사용합니다. 호출 계정은 체크포인트 데이터 또는 실행 상태에 직접 액세스할 수 없습니다.

이러한 격리를 통해 외부 계정에서 간접 호출된 경우에도 함수의 계정 내에서 체크포인트 데이터가 안전하게 유지됩니다.

상속된 Lambda 보안 기능

지속성 함수는 VPC 연결, 환경 변수 암호화, Dead Letter Queue(DLQ), 예약된 동시성, 함수 URL, 코드 서명 및 규정 준수 인증(SOC, PCI DSS, HIPAA 등)을 포함하여 Lambda의 모든 보안, 거버넌스 및 규정 준수 기능을 상속합니다.

Lambda 보안 기능에 대한 자세한 내용은 Lambda 개발자 안내서의 AWS Lambda의 보안을 참조하세요. 지속성 함수에 대한 유일한 추가 보안 고려 사항은 이 안내서에서 설명하는 체크포인트 권한입니다.