Lambda 보안 및 규정 준수를 위한 관찰성 구현 - AWS Lambda

Lambda 보안 및 규정 준수를 위한 관찰성 구현

AWS Config는 규정 미준수 AWS 서버리스 리소스를 찾아 수정하는 데 유용한 도구입니다. 서버리스 리소스에서 변경한 내용은 모두 AWS Config에 기록됩니다. 또한 AWS Config에서는 구성 스냅샷 데이터를 S3에 저장할 수 있습니다. Amazon Athena 및 Amazon QuickSight를 사용하여 대시보드를 생성하고 AWS Config 데이터를 볼 수 있습니다. AWS Config를 사용하여 규정 미준수 Lambda 배포 및 구성 감지에서는 Lambda 계층과 같은 특정 구성을 시각화하는 방법을 설명했습니다. 이 주제에서는 이러한 개념을 확장합니다.

Lambda 구성에 대한 가시성

쿼리를 사용하여 AWS 계정 ID, 리전, AWS X-Ray 트레이싱 구성, VPC 구성, 메모리 크기, 런타임, 태그와 같은 중요한 구성을 가져올 수 있습니다. 다음은 Athena에서 이 정보를 가져오는 데 사용할 수 있는 샘플 쿼리입니다.

WITH unnested AS ( SELECT item.awsaccountid AS account_id, item.awsregion AS region, item.configuration AS lambda_configuration, item.resourceid AS resourceid, item.resourcename AS resourcename, item.configuration AS configuration, json_parse(item.configuration) AS lambda_json FROM default.aws_config_configuration_snapshot, UNNEST(configurationitems) as t(item) WHERE "dt" = 'latest' AND item.resourcetype = 'AWS::Lambda::Function' ) SELECT DISTINCT account_id, tags, region as Region, resourcename as FunctionName, json_extract_scalar(lambda_json, '$.memorySize') AS memory_size, json_extract_scalar(lambda_json, '$.timeout') AS timeout, json_extract_scalar(lambda_json, '$.runtime') AS version json_extract_scalar(lambda_json, '$.vpcConfig.SubnetIds') AS vpcConfig json_extract_scalar(lambda_json, '$.tracingConfig.mode') AS tracingConfig FROM unnested

쿼리를 사용하여 Amazon QuickSight 대시보드를 빌드하고 데이터를 시각화할 수 있습니다. AWS 리소스 구성 데이터를 집계하고 Athena에서 테이블을 생성하며 Athena의 데이터를 기반으로 Amazon QuickSight 대시보드를 빌드하려면 AWS 클라우드 운영 및 관리 블로그에서 Visualizing AWS Config data using Athena and Amazon QuickSight르 참조하세요. 특히 이 쿼리는 함수에 대한 태그 정보도 검색합니다. 이를 통해 특히 사용자 지정 태그를 사용하는 경우 워크로드와 환경에 대한 심층적인 인사이트를 얻을 수 있습니다.

Query results in Amazon QuickSight dashboard

수행할 수 있는 작업에 대한 자세한 내용은 이 주제의 후반부에 나오는 관찰성 결과 처리 섹션을 참조하세요.

Lambda 규정 준수에 대한 가시성

AWS Config에서 생성한 데이터를 사용하여 조직 수준의 대시보드를 만들어 규정 준수를 모니터링할 수 있습니다. 이를 통해 다음을 일관되게 추적하고 모니터링할 수 있습니다.

  • 규정 준수 점수별 규정 준수 팩

  • 규정 미준수 리소스별 규칙

  • 규정 준수 상태

AWS Config console dashboard

각 규칙을 확인하여 해당 규칙에 대한 규정 미준수 리소스를 식별합니다. 예를 들어, 조직에서 모든 Lambda 함수를 VPC와 연결하도록 규정하고 규정 준수를 식별하는 AWS Config 규칙을 배포한 경우 위 목록에서 lambda-inside-vpc 규칙을 선택할 수 있습니다.

View non-compliant resources in AWS Config console

수행할 수 있는 작업에 대한 자세한 내용은 아래 관찰성 결과 처리 섹션을 참조하세요.

Security Hub를 사용하여 Lambda 함수 경계에 대한 가시성 확보

Diagram of example AWS Security Hub inputs for Lambda, such as resource policy, runtime, and code

Lambda를 비롯한 AWS 서비스를 안전하게 사용할 수 있도록 AWS에서는 Foundational Security Best Practices v1.0.0을 도입했습니다. 이 모범 사례 세트는 강력한 보안 태세 유지의 중요성을 강조하면서 AWS 환경의 리소스 및 데이터 보안을 위한 명확한 지침을 제공합니다. AWS Security Hub는 통합 보안 및 규정 준수 센터를 제공하여 이를 보완합니다. 그리고 Amazon Inspector, AWS Identity and Access Management Access Analyzer 및 Amazon GuardDuty와 같은 여러 AWS 서비스의 보안 결과를 집계하고 구성하며 우선순위를 지정합니다.

AWS 조직 내에서 Security Hub, Amazon Inspector, IAM Access Analyzer 및 GuardDuty를 활성화한 경우 Security Hub는 이러한 서비스의 결과를 자동으로 집계합니다. 예를 들어 Amazon Inspector를 고려합니다. Security Hub를 사용하면 Lambda 함수의 코드 및 패키지 취약성을 효율적으로 식별할 수 있습니다. Security Hub 콘솔에서 하단의 AWS 통합의 최근 분석 결과 섹션으로 이동합니다. 여기에서 통합된 다양한 AWS 서비스에서 가져온 결과를 보고 분석할 수 있습니다.

Security Hub console "Latest findings from AWS integrations" section

세부 정보를 보려면 두 번째 열의 결과 보기 링크를 선택합니다. 여기에는 Amazon Inspector와 같이 제품별로 필터링된 결과 목록이 표시됩니다. 검색을 Lambda 함수로 제한하려면 ResourceTypeAwsLambdaFunction으로 설정합니다. 여기에는 Lambda 함수와 관련된 Amazon Inspector의 결과가 표시됩니다.

Filter for Amazon Inspector results related to Lambda functions

GuardDuty의 경우 의심스러운 네트워크 트래픽 패턴을 식별할 수 있습니다. 이러한 이상 현상은 Lambda 함수 내에 잠재적인 악성 코드가 존재함을 암시할 수 있습니다.

IAM Access Analyzer를 사용하면 정책, 특히 외부 엔터티에 대한 함수 액세스 권한을 부여하는 조건문이 있는 정책을 확인할 수 있습니다. 또한 IAM Access Analyzer는 Lambda API에서 AddPermission 작업을 EventSourceToken과 함께 사용할 때 설정된 권한을 평가합니다.

관찰성 결과 처리

Lambda 함수에 사용할 수 있는 광범위한 구성과 고유한 요구 사항을 고려할 때 문제 해결을 위한 표준화된 자동화 솔루션이 모든 상황에 적합하지 않을 수도 있습니다. 또한 변경 사항은 다양한 환경에서 다르게 구현됩니다. 호환되지 않는 구성이 있으면 다음 지침을 고려합니다.

  1. 태그 지정 전략

    포괄적인 태그 지정 전략을 구현하는 것이 좋습니다. 각 Lambda 함수에는 다음과 같은 주요 정보로 태그를 지정해야 합니다.

    • 소유자: 함수를 담당하는 사람 또는 팀.

    • 환경: 프로덕션, 스테이징, 개발 또는 샌드박스.

    • 애플리케이션: 해당하는 경우 이 함수가 속한 더 넓은 컨텍스트.

  2. 소유자 아웃리치

    주요 변경 사항(예: VPC 구성 조정)을 자동화하는 대신, 규정 미준수 함수의 소유자(소유자 태그로 식별됨)에게 사전에 연락하여 다음 중 하나를 수행할 수 있는 충분한 시간을 확보합니다.

    • Lambda 함수에서 규정 미준수 구성을 조정합니다.

    • 설명을 제공하고 예외를 요청하거나 규정 준수 표준을 세분화합니다.

  3. 구성 관리 데이터베이스(CMDB) 유지 관리

    태그는 즉각적인 컨텍스트를 제공하는 반면, 중앙 집중식 CMDB를 유지 관리하면 더 심층적인 인사이트를 제공할 수 있습니다. 각 Lambda 함수, 해당 종속 항목 및 기타 중요한 메타데이터에 대한 보다 세분화된 정보를 보관할 수 있습니다. CMDB는 감사, 규정 준수 검사 및 함수 소유자 식별을 위한 매우 중요한 리소스입니다.

서버리스 인프라 환경이 지속적으로 발전함에 따라 모니터링에 대한 사전 예방적 접근 태세를 취해야 합니다. AWS Config, Security Hub 및 Amazon Inspector와 같은 도구를 사용하면 잠재적 이상 또는 규정 미준수 구성을 신속하게 식별할 수 있습니다. 하지만 도구만으로는 완전한 규정 준수나 최적의 구성을 보장할 수 없습니다. 이러한 도구를 잘 문서화된 프로세스 및 모범 사례와 함께 사용하는 것이 중요합니다.

  • 피드백 루프: 문제 해결 단계를 수행한 후 피드백 루프가 있는지 확인합니다. 즉, 규정 미준수 리소스를 주기적으로 다시 확인하여 해당 리소스가 업데이트되었는지 또는 동일한 문제가 계속 발생하는지 확인해야 합니다.

  • 문서화: 항상 관찰 내용, 수행한 작업, 허용된 예외 사항을 문서화합니다. 적절한 문서화는 감사 중에 도움이 될 뿐만 아니라 향후 규정 준수 및 보안 강화를 위한 프로세스를 개선하는 데도 도움이 됩니다.

  • 교육 및 인식: 모든 이해관계자, 특히 Lambda 함수 소유자가 모범 사례, 조직 정책 및 규정 준수 규정을 주기적으로 교육받고 인지해야 합니다. 정기 워크숍, 웨비나 또는 교육 세션은 보안 및 규정 준수와 관련하여 모든 사람이 동일한 이해 기반을 갖추는 데 큰 도움이 될 수 있습니다.

결론적으로, 도구와 기술은 잠재적 문제를 감지하고 플래그를 지정하는 강력한 기능을 제공하지만, 이해, 소통, 교육 및 문서화와 같은 인적 요소도 여전히 중요합니다. 이 둘을 함께 활용하면 Lambda 기능 및 광범위한 인프라가 규정을 준수하고 안전하며 비즈니스 요구 사항에 맞게 최적화되도록 보장하는 강력한 이점을 제공합니다.