

# Lambda 보안 및 규정 준수를 위한 관찰성 구현
<a name="governance-observability"></a>

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

## Lambda 구성에 대한 가시성
<a name="governance-observability-configuration"></a>

쿼리를 사용하여 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
```

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

 ![\[Query results in Quick dashboard\]](http://docs.aws.amazon.com/ko_kr/lambda/latest/dg/images/governance-observability-1.png) 

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

## Lambda 규정 준수에 대한 가시성
<a name="governance-observability-compliance"></a>

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

 ![\[AWS Config console dashboard\]](http://docs.aws.amazon.com/ko_kr/lambda/latest/dg/images/governance-observability-2.png) 

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

 ![\[View non-compliant resources in AWS Config console\]](http://docs.aws.amazon.com/ko_kr/lambda/latest/dg/images/governance-observability-3.png) 

수행할 수 있는 작업에 대한 자세한 내용은 아래 [관찰성 결과 처리](#governance-observability-addressing) 섹션을 참조하세요.

## Security Hub CSPM을 사용하여 Lambda 함수 경계에 대한 가시성 확보
<a name="governance-observability-boundaries"></a>

 ![\[Diagram of example AWS Security Hub CSPM inputs for Lambda, such as resource policy, runtime, and code\]](http://docs.aws.amazon.com/ko_kr/lambda/latest/dg/images/governance-observability-4.png) 

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

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

 ![\[Security Hub CSPM console "Latest findings from AWS integrations" section\]](http://docs.aws.amazon.com/ko_kr/lambda/latest/dg/images/governance-observability-5.png) 

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

 ![\[Filter for Amazon Inspector results related to Lambda functions\]](http://docs.aws.amazon.com/ko_kr/lambda/latest/dg/images/governance-observability-6.png) 

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

IAM Access Analyzer를 사용하면 정책, 특히 외부 엔터티에 대한 함수 액세스 권한을 부여하는 조건문이 있는 정책을 확인할 수 있습니다. 또한 IAM Access Analyzer는 Lambda API에서 [AddPermission](https://docs.aws.amazon.com/lambda/latest/api/API_AddPermission.html) 작업을 `EventSourceToken`과 함께 사용할 때 설정된 권한을 평가합니다.

## 관찰성 결과 처리
<a name="governance-observability-addressing"></a>

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

1. **태그 지정 전략**

   포괄적인 태그 지정 전략을 구현하는 것이 좋습니다. 각 Lambda 함수에는 다음과 같은 주요 정보로 태그를 지정해야 합니다.
   + **소유자:** 함수를 담당하는 사람 또는 팀.
   + **환경:** 프로덕션, 스테이징, 개발 또는 샌드박스.
   + **애플리케이션:** 해당하는 경우 이 함수가 속한 더 넓은 컨텍스트.

1. **소유자 아웃리치**

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

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

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

서버리스 인프라 환경이 지속적으로 발전함에 따라 모니터링에 대한 사전 예방적 접근 태세를 취해야 합니다. AWS Config, Security Hub CSPM 및 Amazon Inspector와 같은 도구를 사용하면 잠재적 이상 또는 규정 미준수 구성을 신속하게 식별할 수 있습니다. 하지만 도구만으로는 완전한 규정 준수나 최적의 구성을 보장할 수 없습니다. 이러한 도구를 잘 문서화된 프로세스 및 모범 사례와 함께 사용하는 것이 중요합니다.
+ **피드백 루프:** 문제 해결 단계를 수행한 후 피드백 루프가 있는지 확인합니다. 즉, 규정 미준수 리소스를 주기적으로 다시 확인하여 해당 리소스가 업데이트되었는지 또는 동일한 문제가 계속 발생하는지 확인해야 합니다.
+ **문서화:** 항상 관찰 내용, 수행한 작업, 허용된 예외 사항을 문서화합니다. 적절한 문서화는 감사 중에 도움이 될 뿐만 아니라 향후 규정 준수 및 보안 강화를 위한 프로세스를 개선하는 데도 도움이 됩니다.
+ **교육 및 인식:** 모든 이해관계자, 특히 Lambda 함수 소유자가 모범 사례, 조직 정책 및 규정 준수 규정을 주기적으로 교육받고 인지해야 합니다. 정기 워크숍, 웨비나 또는 교육 세션은 보안 및 규정 준수와 관련하여 모든 사람이 동일한 이해 기반을 갖추는 데 큰 도움이 될 수 있습니다.

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