

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

# AWS Control Tower의 로깅 및 모니터링
<a name="logging-and-monitoring"></a>

모니터링을 통해 잠재적 인시던트를 대비 및 대응할 수 있습니다. 모니터링 활동의 결과는 로그 파일에 저장됩니다. 따라서 로깅 및 모니터링은 밀접하게 관련된 개념이며 AWS Control Tower의 Well-Architected 특성에서 중요한 부분입니다.

랜딩 존을 설정하면 공유 계정 중 하나로 *로그 아카이브* 계정이 생성됩니다. 이 계정은 모든 공유 및 멤버 계정에 대한 로그를 포함하여 모든 로그를 중앙에서 수집하는 전용 계정입니다. 로그 파일은 Amazon S3 버킷에 저장됩니다. 관리자와 감사자는 이러한 로그 파일을 통해 발생한 작업 및 이벤트를 검토할 수 있습니다.

모범 사례로, 다중 지점 장애가 발생할 경우 더 쉽게 디버깅할 수 있도록AWS설정의 모든 부분에서 모니터링 데이터를 로그에 수집해야 합니다.AWS는 랜딩 존의 리소스 및 활동을 모니터링하기 위한 여러 도구를 제공합니다.

예를 들어 제어의 상태는 지속적으로 모니터링됩니다. AWS Control Tower 콘솔에서 제어 상태를 한눈에 볼 수 있으며 [AWS Control Tower API](https://docs.aws.amazon.com//controltower/latest/APIReference/API_Operations.html)를 통해 프로그래밍 방식으로도 확인할 수 있습니다. Account Factory에서 프로비저닝한 계정의 상태도 지속적으로 모니터링됩니다.

**활동 페이지에서 로깅된 작업 보기**

AWS Control Tower 콘솔의 **활동** 페이지에서는 AWS Control Tower 관리 계정 작업에 대한 개요를 제공합니다. AWS Control Tower **활동** 페이지로 이동하려면 왼쪽 탐색 창에서 **활동**을 선택합니다.

**활동** 페이지에 표시된 활동은 AWS Control Tower의AWS CloudTrail이벤트 로그에 보고된 것과 동일하지만 테이블 형식으로 표시됩니다. 특정 활동에 대한 자세한 내용은 테이블에서 활동을 선택한 다음 **세부 정보 보기**를 선택합니다.

멤버 계정 작업 및 이벤트는 로그 아카이브 파일에서 볼 수 있습니다.

다음 섹션에서는 AWS Control Tower의 모니터링 및 로깅에 대해 더 자세히 설명합니다.

**주제**
+ [모니터링을 위한 통합 도구](monitoring-overview.md)
+  [를 사용하여 AWS Control Tower 작업 로깅 AWS CloudTrail](logging-using-cloudtrail.md)
+ [AWS Control Tower의 수명 주기 이벤트](lifecycle-events.md)
+ [에서AWS사용자 알림 사용AWS Control Tower](using-user-notifications.md)

# AWS Control Tower 로깅 정보
<a name="about-logging"></a>

AWS Control Tower는AWS CloudTrail및 와의 통합을 통해 작업AWS Config및 이벤트의 로깅을 자동으로 수행하고 이를 CloudWatch에 기록합니다. AWS Control Tower 관리 계정 및 조직의 구성원 계정의 작업을 포함하여 모든 작업이 기록됩니다. 관리 계정 작업 및 이벤트는 콘솔의 **활동** 페이지에서 볼 수 있습니다. 멤버 계정 작업 및 이벤트는 로그 아카이브 파일에서 볼 수 있습니다.

**조직 수준 추적**

AWS Control Tower는 랜딩 존을 설정할 때 새 CloudTrail 추적을 설정합니다. 이는 *조직 수준 추적*으로, 관리 계정의 모든 이벤트와 조직의 모든 멤버 계정을 로깅합니다. 이 기능은 *신뢰할 수 있는 액세스*에 의존하여 모든 멤버 계정에 대한 추적을 생성할 수 있는 권한을 관리 계정에 부여합니다.

AWS Control Tower 및 CloudTrail 조직 추적에 대한 자세한 내용은 [조직에 대한 추적 생성](https://docs.aws.amazon.com//awscloudtrail/latest/userguide/creating-trail-organization.html)을 참조하세요.

**참고**  
랜딩 존 버전 3.0 이전의 AWS Control Tower 릴리스에서 AWS Control Tower는 각 계정에 멤버 계정 추적을 생성했습니다. 릴리스 3.0으로 업데이트하면 CloudTrail 추적이 조직 추적이 됩니다. 추적 간 이동 시 모범 사례는 *CloudTrail 사용자 안내서*의 [추적 변경 모범 사례](https://docs.aws.amazon.com//awscloudtrail/latest/userguide/creating-trail-organization.html#creating-an-organizational-trail-best-practice)를 참조하세요.

AWS Control Tower에 계정을 등록하면 계정에 AWS Control Tower 조직의AWS CloudTrail추적이 적용됩니다. 해당 계정에 기존에 배포된 CloudTrail 추적이 있는 경우 AWS Control Tower에 계정을 등록하기 전에 계정에 대한 기존 추적을 삭제하지 않으면 중복 요금이 부과될 수 있습니다.

**참고**  
랜딩 존 버전 3.0으로 업데이트하면 AWS Control Tower는 등록된 계정의 계정 수준 추적(AWS Control Tower가 생성한)을 삭제합니다. 기존 계정 수준 로그 파일은 Amazon S3 버킷에 보존됩니다.

# 감사 계정의 Amazon S3 버킷 정책
<a name="logging-s3-audit-bucket"></a>

AWS Control Tower에서AWS서비스는 요청이 조직 또는 조직 단위(OU)에서 시작된 경우에만 리소스에 액세스할 수 있습니다. 모든 쓰기 권한에 대해 `aws:SourceOrgID` 조건이 충족되어야 합니다.

`aws:SourceOrgID` 조건 키를 사용하고 Amazon S3 버킷 정책의 조건 요소에서 값을 **조직 ID**로 설정할 수 있습니다. 이 조건은 CloudTrail만 조직 내 계정을 대신하여 S3 버킷에 로그를 쓸 수 있도록 보장하며, 조직 외부의 CloudTrail 로그가 AWS Control Tower S3 버킷에 기록되지 않도록 방지합니다.

이 정책은 기존 워크로드의 기능에 영향을 주지 않습니다. 정책은 다음 예제에 나와 있습니다.

```
S3AuditBucketPolicy:
    Type: AWS::S3::BucketPolicy
    Properties:
      Bucket: !Ref S3AuditBucket
      PolicyDocument:
        Version: 2012-10-17		 	 	 
        Statement:
          - Sid: AllowSSLRequestsOnly
            Effect: Deny
            Principal: '*'
            Action: s3:*
            Resource:
             - !Sub "arn:${AWS::Partition}:s3:::${S3AuditBucket}"
             - !Sub "arn:${AWS::Partition}:s3:::${S3AuditBucket}/*"
            Condition:
              Bool:
                aws:SecureTransport: false
          - Sid: AWSBucketPermissionsCheck
            Effect: Allow
            Principal:
              Service:
                - cloudtrail.amazonaws.com
                - config.amazonaws.com
            Action: s3:GetBucketAcl
            Resource:
              - !Sub "arn:${AWS::Partition}:s3:::${S3AuditBucket}"
          - Sid: AWSConfigBucketExistenceCheck
            Effect: Allow
            Principal:
              Service:
                - cloudtrail.amazonaws.com
                - config.amazonaws.com
            Action: s3:ListBucket
            Resource:
              - !Sub "arn:${AWS::Partition}:s3:::${S3AuditBucket}"
          - Sid: AWSBucketDeliveryForConfig
            Effect: Allow
            Principal:
              Service:
                - config.amazonaws.com
            Action: s3:PutObject
            Resource:
              - Fn::Join:
                  - ""
                  -
                    - !Sub "arn:${AWS::Partition}:s3:::"
                    - !Ref "S3AuditBucket"
                    - !Sub "/${AWSLogsS3KeyPrefix}/AWSLogs/*/*"
            Condition:
              StringEquals:
                aws:SourceOrgID: !Ref OrganizationId
          - Sid: AWSBucketDeliveryForOrganizationTrail
            Effect: Allow
            Principal:
              Service:
                - cloudtrail.amazonaws.com
            Action: s3:PutObject
            Resource: !If [IsAccountLevelBucketPermissionRequiredForCloudTrail,
                [!Sub "arn:${AWS::Partition}:s3:::${S3AuditBucket}/${AWSLogsS3KeyPrefix}/AWSLogs/${Namespace}/*", !Sub "arn:${AWS::Partition}:s3:::${S3AuditBucket}/${AWSLogsS3KeyPrefix}/AWSLogs/${OrganizationId}/*"],
                !Sub "arn:${AWS::Partition}:s3:::${S3AuditBucket}/${AWSLogsS3KeyPrefix}/AWSLogs/*/*"]
            Condition:
              StringEquals:
            aws:SourceOrgID: !Ref OrganizationId
```

이 조건 키에 대한 자세한 내용은 IAM 설명서와 "*리소스에 액세스하는AWS서비스에 확장 가능한 제어 사용"이라는 IAM 블로그 게시물을 참조하세요*.

# 모니터링을 위한 통합 도구
<a name="monitoring-overview"></a>

모니터링은 AWS Control Tower 및 기타AWS솔루션의 안정성, 가용성 및 성능을 유지하는 데 중요한 부분입니다.는 AWS Control Tower를 모니터링하고, 이상이 있을 때 보고하고, 필요한 경우 자동 조치를 취할 수 있도록 다음과 같은 모니터링 도구를AWS제공합니다.
+ *Amazon CloudWatch*는AWS리소스와AWS에서 실행하는 애플리케이션을 실시간으로 모니터링합니다. 지표를 수집 및 추적하고, 사용자 지정 대시보드를 생성할 수 있으며, 지정된 지표가 지정한 임곗값에 도달하면 사용자에게 알리거나 조치를 취하도록 경보를 설정할 수 있습니다. 예를 들어 CloudWatch에서 Amazon EC2 인스턴스의 CPU 사용량 또는 기타 지표를 추적하고 필요할 때 자동으로 새 인스턴스를 시작할 수 있습니다. 자세한 내용은 [Amazon CloudWatch 사용자 안내서](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/)를 참조하세요.
+ *Amazon CloudWatch Events*는AWS리소스의 변경 사항을 설명하는 시스템 이벤트의 스트림을 거의 실시간으로 제공합니다. CloudWatch Events는 특정 이벤트를 감시하는 규칙을 작성하고 이러한 이벤트가 발생할 때 다른AWS서비스에서 자동화된 작업을 트리거할 수 있으므로 자동화된 이벤트 기반 컴퓨팅이 가능합니다. 자세한 내용은 [Amazon CloudWatch Events 사용자 안내서](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/)를 참조하세요.
+ *Amazon CloudWatch Logs*로 Amazon EC2 인스턴스, CloudTrail, 기타 소스의 로그 파일을 모니터링, 저장 및 액세스할 수 있습니다. CloudWatch Logs는 로그 파일의 정보를 모니터링하고 특정 임계값에 도달하면 사용자에게 알릴 수 있습니다. 또한 매우 내구성이 뛰어난 스토리지에 로그 데이터를 저장할 수 있습니다. 자세한 내용은 [Amazon CloudWatch Logs 사용자 안내서](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/)를 참조하세요.
+ *AWS CloudTrail*는AWS계정에서 또는 계정을 대신하여 수행한 API 호출 및 관련 이벤트를 캡처하고 지정한 Amazon S3 버킷으로 로그 파일을 전송합니다. 호출한 사용자 및 계정AWS, 호출이 수행된 소스 IP 주소, 호출이 발생한 시기를 식별할 수 있습니다.

**팁: **CloudWatch Logs 및 CloudWatch Logs Insights를 통해 계정의 CloudTrail 활동을 보고 쿼리할 수 있습니다. 이 활동에는 AWS Control Tower 수명 주기 이벤트가 포함됩니다. CloudWatch Logs의 기능을 사용하면 일반적으로 CloudTrail을 사용하여 수행할 수 있는 것보다 더 세밀하고 정확한 쿼리를 수행할 수 있습니다.

자세한 내용은 [를 사용하여 AWS Control Tower 작업 로깅 AWS CloudTrail](logging-using-cloudtrail.md) 섹션을 참조하세요.

# 를 사용하여 AWS Control Tower 작업 로깅 AWS CloudTrail
<a name="logging-using-cloudtrail"></a>

AWS Control Tower는 AWS Control Tower에서 사용자 AWS CloudTrail, 역할 또는 서비스가 수행한 작업에 대한 레코드를 제공하는 AWS 서비스와 통합됩니다. CloudTrail은 AWS Control Tower에 대한 작업을 이벤트로 캡처합니다. 추적을 생성하면 AWS Control Tower 이벤트를 포함한 CloudTrail 이벤트를 지속적으로 Amazon S3 버킷에 배포할 수 있습니다.

추적을 구성하지 않은 경우에도 **이벤트 기록**에서 CloudTrail 콘솔의 최신 이벤트를 볼 수 있습니다. CloudTrail에서 수집한 정보를 사용하여 AWS Control Tower에 수행된 요청, 요청이 수행된 IP 주소, 요청을 수행한 사람, 요청이 수행된 시간 및 추가 세부 정보를 확인할 수 있습니다.

구성 및 활성화 방법을 포함하여 CloudTrail에 대한 자세한 내용은 [AWS CloudTrail 사용자 안내서](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/)를 참조하세요.

## CloudTrail의 AWS Control Tower 정보
<a name="scontrol-tower-info-in-cloudtrail"></a>

 AWS 계정을 생성할 때 계정에서 CloudTrail이 활성화됩니다. 지원되는 이벤트 활동이 AWS Control Tower에서 발생하면, 해당 활동이 **이벤트 기록**의 다른 AWS 서비스 이벤트와 함께 CloudTrail 이벤트에 기록됩니다. AWS 계정에서 최근 이벤트를 보고 검색하고 다운로드할 수 있습니다. 자세한 설명은 [CloudTrail 이벤트 기록으로 이벤트 보기](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html)를 참조하세요.

**참고**  
랜딩 존 버전 3.0 이전의 AWS Control Tower 릴리스에서 AWS Control Tower는 멤버 계정 추적을 생성했습니다. 릴리스 3.0으로 업데이트하면 CloudTrail 추적이 조직 추적으로 업데이트됩니다. 추적 간 이동의 모범 사례는 CloudTrail 사용자 안내서의 [조직 추적 생성](https://docs.aws.amazon.com//awscloudtrail/latest/userguide/creating-trail-organization.html#creating-an-organizational-trail-best-practice)을 참조하세요.

**권장 사항: 추적 생성**

AWS Control Tower에 대한 이벤트를 포함하여 AWS 계정에 이벤트를 지속적으로 기록하려면 추적을 생성합니다. CloudTrail은 *추적*을 사용하여 Amazon S3 버킷으로 로그 파일을 전송할 수 있습니다. 콘솔에서 추적을 생성하면 기본적으로 모든 AWS Region에 추적이 적용됩니다. 추적은 AWS 파티션의 모든 리전에서 이벤트를 로깅하고 지정한 Amazon S3 버킷으로 로그 파일을 전송합니다. 추가적으로, CloudTrail 로그에서 수집된 이벤트 데이터를 추가 분석 및 처리하도록 다른 AWS 서비스를 구성할 수 있습니다. 자세한 내용은 다음 자료를 참조하세요.
+ [추적 생성 개요](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html)
+  [추적 생성 준비](https://docs.aws.amazon.com//awscloudtrail/latest/userguide/creating-an-organizational-trail-prepare.html)
+  [CloudTrail 비용 관리](https://docs.aws.amazon.com//awscloudtrail/latest/userguide/cloudtrail-trail-manage-costs.html)
+ [CloudTrail 지원 서비스 및 통합](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-aws-service-specific-topics.html#cloudtrail-aws-service-specific-topics-integrations)
+ [CloudTrail에서 Amazon SNS 알림 구성](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/getting_notifications_top_level.html)
+ [여러 리전으로부터 CloudTrail 로그 파일 받기](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/receive-cloudtrail-log-files-from-multiple-regions.html) 및 [여러 계정으로부터 CloudTrail 로그 파일 받기](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-receive-logs-from-multiple-accounts.html)

AWS Control Tower는 다음 작업을 CloudTrail 로그 파일에 이벤트로 기록합니다.

**퍼블릭 API**
+ AWS Control Tower 퍼블릭 API와 각 퍼블릭 API에 대한 세부 정보는 [AWS Control Tower API 참조](https://docs.aws.amazon.com//controltower/latest/APIReference/Welcome.html)를 참조하세요. 이러한 퍼블릭 APIs은에서 로깅합니다 AWS CloudTrail.

**기타 API**
+ `SetupLandingZone`
+ `UpdateAccountFactoryConfig`
+ `ManageOrganizationalUnit`
+ `CreateManagedAccount`
+ `GetLandingZoneStatus`
+ `GetHomeRegion`
+ `ListManagedAccounts`
+ `DescribeManagedAccount`
+ `DescribeAccountFactoryConfig`
+ `DescribeGuardrailForTarget`
+ `DescribeManagedOrganizationalUnit`
+ `ListEnabledGuardrails`
+ `ListGuardrailViolations`
+ `ListGuardrails`
+ `ListGuardrailsForTarget`
+ `ListManagedAccountsForGuardrail`
+ `ListManagedAccountsForParent`
+ `ListManagedOrganizationalUnits`
+ `ListManagedOrganizationalUnitsForGuardrail`
+ `GetGuardrailComplianceStatus`
+ `DescribeGuardrail`
+ `ListDirectoryGroups`
+ `DescribeSingleSignOn`
+ `DescribeCoreService`
+ `GetAvailableUpdates`

모든 이벤트 또는 로그 항목에는 요청을 생성했던 사용자에 관한 정보가 포함됩니다. ID 정보를 이용하면 다음을 쉽게 판단할 수 있습니다.
+ 요청이 루트 또는 AWS Identity and Access Management (IAM) 사용자 자격 증명으로 이루어졌는지 여부입니다.
+ 역할 또는 페더레이션 사용자의 임시 자격 증명을 사용하여 요청이 생성되었는지 여부.
+ 요청이 다른 AWS 서비스에서 이루어졌는지 여부입니다.
+ 요청이 '액세스 거부됨'으로 거부되었는지 또는 성공적으로 처리되었는지 여부

자세한 내용은 [CloudTrail userIdentity 요소](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-user-identity.html)를 참조하세요.

## 예: AWS Control Tower 로그 파일 항목
<a name="understanding-service-name-entries"></a>

 트레일이란 지정한 S3 버킷에 이벤트를 로그 파일로 입력할 수 있게 하는 구성입니다. CloudTrail 로그 파일에는 하나 이상의 로그 항목이 포함될 수 있습니다. 이벤트는 모든 소스로부터의 단일 요청을 나타내며 요청 작업, 작업 날짜와 시간, 요청 파라미터 등에 대한 정보가 들어 있습니다. CloudTrail 이벤트는 로그 파일에 특정 순서로 표시되지 않습니다.

다음은 작업을 시작한 사용자의 ID 레코드를 비롯해 `SetupLandingZone` AWS Control Tower 이벤트에 대한 일반적인 로그 파일 항목의 구조를 보여주는 CloudTrail 로그 항목의 예제입니다.

```
{
  "eventVersion": "1.05",
  "userIdentity": {
    "type": "AssumedRole",
    "principalId": "AIDACKCEVSQ6C2EXAMPLE:backend-test-assume-role-session",
    "arn": "arn:aws:sts::76543EXAMPLE;:assumed-role/AWSControlTowerTestAdmin/backend-test-assume-role-session",
    "accountId": "76543EXAMPLE",
    "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
    "sessionContext": {
      "attributes": {
        "mfaAuthenticated": "false",
        "creationDate": "2018-11-20T19:36:11Z"
      },
      "sessionIssuer": {
        "type": "Role",
        "principalId": "AIDACKCEVSQ6C2EXAMPLE",
        "arn": "arn:aws:iam::AKIAIOSFODNN7EXAMPLE:role/AWSControlTowerTestAdmin",
        "accountId": "AIDACKCEVSQ6C2EXAMPLE",
        "userName": "AWSControlTowerTestAdmin"
      }
    }
  },
  "eventTime": "2018-11-20T19:36:15Z",
  "eventSource": "controltower.amazonaws.com",
  "eventName": "SetupLandingZone",
  "awsRegion": "us-east-1",
  "sourceIPAddress": "AWS Internal",
  "userAgent": "Coral/Netty4",
  "errorCode": "InvalidParametersException",
  "errorMessage": "Home region EU_CENTRAL_1 is unsupported",
  "requestParameters": {
    "homeRegion": "EU_CENTRAL_1",
    "logAccountEmail": "HIDDEN_DUE_TO_SECURITY_REASONS",
    "sharedServiceAccountEmail": "HIDDEN_DUE_TO_SECURITY_REASONS",
    "securityAccountEmail": "HIDDEN_DUE_TO_SECURITY_REASONS",
    "securityNotificationEmail": "HIDDEN_DUE_TO_SECURITY_REASONS"
  },
  "responseElements": null,
  "requestID": "96f47b68-ed5f-4268-931c-807cd1f89a96",
  "eventID": "4ef5cf08-39e5-4fdf-9ea2-b07ced506851",
  "eventType": "AwsApiCall",
  "recipientAccountId": "76543EXAMPLE"
}
```

# 를 사용하여 리소스 변경 사항 모니터링 AWS Config
<a name="monitoring-with-config"></a>

AWS Control Tower는 등록된 모든 계정 AWS Config 에서를 활성화하므로 탐지 제어를 통해 규정 준수를 모니터링하고, 리소스 변경을 기록하고, 리소스 변경 로그를 로그 아카이브 계정에 전달할 수 있습니다.

**랜딩 존 버전이 3.0 이전인 경우**: 등록된 계정의 경우는 계정이 작동하는 모든 리전에 대해 리소스에 대한 모든 변경 사항을 AWS Config 기록합니다. 각 변경 사항은 구성 항목(CI)으로 모델링되며, 여기에는 리소스 식별자, 리전, 각 변경 사항이 기록된 날짜, 변경 사항이 알려진 리소스와 관련이 있는지 아니면 새로 발견된 리소스와 관련이 있는지와 같은 정보가 포함됩니다.

**랜딩 존 버전이 3.0 이상인 경우**: AWS Control Tower는 IAM 사용자, 그룹, 역할 및 고객 관리형 정책과 같은 글로벌 리소스에 대한 기록을 홈 리전으로만 제한합니다. 글로벌 리소스 변경 사항의 사본이 모든 리전에 저장되지는 않습니다. 리소스 기록의 이러한 제한은 AWS Config [모범 사례를](https://aws.amazon.com//blogs/mt/aws-config-best-practices/) 준수합니다. [글로벌 리소스의 전체 목록은](https://docs.aws.amazon.com//config/latest/developerguide/select-resources.html) AWS Config 설명서에서 확인할 수 있습니다.
+ 에 대해 자세히 알아보려면 [AWS Config 작동 방식을](https://docs.aws.amazon.com//config/latest/developerguide/how-does-config-work.html) AWS Config참조하세요.
+ 에서 지원할 AWS Config 수 있는 리소스 목록은 [지원되는 리소스 유형을 참조하세요](https://docs.aws.amazon.com//config/latest/developerguide/resource-config-reference.html).
+ AWS Control Tower 환경에서 리소스 추적을 사용자 지정하는 방법에 대한 자세한 내용은 [AWS Control Tower에서 AWS Config 리소스 추적 사용자 지정](https://aws.amazon.com/blogs//mt/customize-aws-config-resource-tracking-in-aws-control-tower-environment)이라는 블로그 게시물을 참조하세요.

AWS Control Tower는 등록된 모든 계정에 AWS Config 전송 채널을 설정합니다. 이 전송 채널을 통해 AWS Config 가 로그 아카이브 계정에 기록한 모든 변경 사항을 기록하며, 여기서 Amazon Simple Storage Service 버킷의 폴더에 저장됩니다.

# AWS Control Tower에서 AWS Config 비용 관리
<a name="config-costs"></a>

이 섹션에서는가 AWS Control Tower 계정의 리소스 변경 사항을 AWS Config 기록하고 청구하는 방법을 설명합니다. 이 정보는 AWS Control Tower를 사용할 AWS Config때 관련 비용을 관리하는 방법을 이해하는 데 도움이 될 수 있습니다. AWS Control Tower는 추가 비용을 부과하지 않습니다.

**참고**  
 **랜딩 존 버전이 3.0 이상인 경우: AWS Control Tower는** IAM 사용자, 그룹, 역할 및 고객 관리형 정책과 같은 글로벌 리소스에 대한 AWS Config 기록을 홈 리전으로만 제한합니다. 따라서 이 섹션의 일부 정보는 랜딩 존에 적용되지 않을 수 있습니다.

AWS Config 는 계정이 작동하는 각 리전의 각 리소스에 대한 각 변경 사항을 구성 항목(CI)으로 기록하도록 설계되었습니다.는 생성하는 각 구성 항목에 대해 AWS Config 요금을 청구합니다.

** AWS Config 의 작동 방식**

AWS Config 는 각 리전의 리소스를 별도로 기록합니다. IAM 역할과 같은 일부 글로벌 리소스는 리전당 한 번 기록됩니다. 예를 들어 5개 리전에서 운영 중인 등록된 계정에서 새 IAM 역할을 생성하는 경우는 각 리전에 대해 하나씩 5개의 CIs AWS Config 생성합니다. Route 53 호스팅 영역과 같은 기타 글로벌 리소스는 모든 리전에서 한 번만 기록됩니다. 예를 들어 등록된 계정에서 새 Route 53 호스팅 영역을 생성하는 경우 AWS Config 는 해당 계정에 대해 선택한 리전 수에 관계없이 하나의 CI를 생성합니다. 이러한 유형의 리소스를 구분하는 데 도움이 되는 목록은 [동일한 리소스가 여러 번 기록됨](monitoring-with-config.md#duplicate-configuration-items) 섹션을 참조하세요.

**참고**  
AWS Control Tower와 함께 작동하면 AWS Config리전이 AWS Control Tower에 의해 관리되거나 관리되지 않을 수 있으며, 계정이 해당 리전에서 작동하는 경우 변경 사항을 AWS Config 계속 기록합니다.

**AWS Config 는 리소스에서 두 가지 유형의 관계를 감지합니다.**

AWS Config 는 리소스 간의 *직접* 관계와 *간접* 관계를 구분합니다. 리소스가 다른 리소스의 **설명** API 직접 호출에 반환되면 해당 리소스는 직접 관계로 기록됩니다. 다른 리소스와 직접 관계로 리소스를 변경하는 경우는 두 리소스 모두에 대해 CI를 생성하지 AWS Config 않습니다.

예를 들어 Amazon EC2 인스턴스를 생성하고 API에서 네트워크 인터페이스를 생성해야 하는 경우 AWS Config 는 Amazon EC2 인스턴스가 네트워크 인터페이스와 직접 관계가 있다고 간주합니다. 따라서는 하나의 CI만 AWS Config 생성합니다.

AWS Config 는 *간접* 관계인 리소스 관계에 대해 별도의 변경 사항을 기록합니다. 예를 들어, 보안 그룹을 생성하고 보안 그룹의 일부인 연결된 Amazon EC2 인스턴스를 추가하는 경우 두 개의 CIs를 AWS Config 생성합니다.

직접 및 간접 관계에 대한 자세한 내용은 [What is a direct and an indirect relationship with respect to a resource?](https://docs.aws.amazon.com//config/latest/developerguide/faq.html#faq-0) 섹션을 참조하세요.

 AWS Config 설명서에서 [리소스 관계 목록을](https://docs.aws.amazon.com//config/latest/developerguide/resource-config-reference.html) 찾을 수 있습니다.

## 등록된 계정의 AWS Config 레코더 데이터 보기
<a name="querying-config"></a>

AWS Config 는 CloudWatch와 통합되어 대시보드에서 AWS Config CIs를 볼 수 있습니다. 자세한 내용은 [AWS Config supports Amazon CloudWatch metrics](https://aws.amazon.com/about-aws/whats-new/2022/05/aws-config-supports-amazon-cloudwatch-metrics)라는 제목의 블로그 게시물을 참조하세요.

프로그래밍 방식으로 AWS Config 데이터를 보거나 CLI로 작업 AWS 하거나 다른 AWS 도구를 활용할 수 있습니다.

### 특정 리소스에 대한 AWS Config 레코더 데이터 쿼리
<a name="querying-resources-using-the-cli"></a>

 AWS CLI를 사용하여 리소스에 대한 최신 변경 사항 목록을 검색할 수 있습니다.

**리소스 기록 명령:**
+ `aws configservice get-resource-config-history --resource-type RESOURCE-TYPE --resource-id RESOURCE-ID --region REGION`

자세한 내용은 [`get-config-history`에 대한 API 설명서](https://docs.aws.amazon.com//cli/latest/reference/configservice/get-resource-config-history.html)를 참조하세요.

### 빠른 AWS Config 데이터 시각화
<a name="visualize-config-data-with-quicksight"></a>

조직 전체에서에서 기록한 리소스를 시각화하고 쿼리할 수 AWS Config 있습니다. 자세한 내용은 [Config Resource Compliance Dashboard](https://catalog.workshops.aws/awscid/en-US/dashboards/additional/config-resource-compliance-dashboard) 및 [Visualizing AWS Config data using Amazon Athena and Quick](https://aws.amazon.com/blogs/mt/visualizing-aws-config-data-using-amazon-athena-and-amazon-quicksight/)을 참조하세요.

## AWS Control Tower AWS Config 의 문제 해결
<a name="troubleshooting-config"></a>

이 섹션에서는 AWS Control Tower와 AWS Config 함께를 사용할 때 발생할 수 있는 몇 가지 문제에 대한 정보를 제공합니다.

### 높은 AWS Config 비용
<a name="high-config-costs"></a>

워크플로에 리소스를 자주 생성, 업데이트 또는 삭제하는 프로세스가 포함되어 있거나 리소스를 대량으로 처리하는 경우 해당 워크플로는 많은 수의 CI를 생성할 수 있습니다. 비프로덕션 계정에서 이러한 프로세스를 실행하는 경우 계정 등록을 취소하는 것이 좋습니다. 해당 계정의 AWS Config 레코더를 수동으로 비활성화해야 할 수 있습니다.

**참고**  
계정을 등록 취소한 후에는 AWS Control Tower가 해당 계정의 리소스에 대해 AWS Config 활동과 같은 탐지 제어 또는 로그 계정 이벤트를 적용할 수 없습니다.

자세한 내용은 [등록된 계정의 관리 중지](https://docs.aws.amazon.com//controltower/latest/userguide/unmanage-account.html)를 참조하세요. AWS Config 레코더를 비활성화하는 방법을 알아보려면 [구성 레코더 관리를 참조하세요](https://docs.aws.amazon.com//config/latest/developerguide/stop-start-recorder.html).

### 동일한 리소스가 여러 번 기록됨
<a name="duplicate-configuration-items"></a>

리소스가 [글로벌 리소스](https://docs.aws.amazon.com//config/latest/developerguide/select-resources.html)인지 확인합니다. 버전 3.0 이전의 AWS Control Tower 랜딩 존의 경우 AWS Config 가 운영 중인 각 리전에 대해 특정 글로벌 리소스를 한 번 기록할 AWS Config 수 있습니다. 예를 들어 8개 리전에서 AWS Config 가 활성화된 경우 각 역할은 8회 기록됩니다.

**가 운영 중인 각 리전에 대해 다음 리소스 AWS Config 가 한 번 기록됩니다.**
+ `AWS::IAM::Group` 
+ `AWS::IAM::Policy` 
+ `AWS::IAM::Role` 
+  `AWS::IAM::User`

**다른 글로벌 리소스는 한 번만 기록됩니다. 다음은 한 번 기록되는 리소스의 몇 가지 예입니다.**
+ `AWS::Route53::HostedZone`
+ `AWS::Route53::HealthCheck`
+ `AWS::ECR::PublicRepository`
+ `AWS::GlobalAccelerator::Listener`
+ `AWS::GlobalAccelerator::EndpointGroup`
+ `AWS::GlobalAccelerator::Accelerator`

### AWS Config 가 리소스를 기록하지 않음
<a name="resource-not-recorded"></a>

특정 리소스는 다른 리소스와 종속 관계에 있습니다. 이러한 관계는 *직접* 또는 *간접*일 수 있습니다. [AWS Config FAQ에서 더 이상 사용되지 않는 간접 관계 목록을 찾을 수 있습니다](https://docs.aws.amazon.com//config/latest/developerguide/faq.html#faq-2).

# AWS Control Tower의 수명 주기 이벤트
<a name="lifecycle-events"></a>

AWS Control Tower에서 기록한 일부 이벤트는 *수명 주기 이벤트*입니다. 수명 주기 이벤트의 목적은 리소스 상태를 변경하는 특정 AWS Control Tower 작업의 *완료*를 표시하는 것입니다. 수명 주기 이벤트는 조직 단위(OU)나 계정과 관련된 랜딩 존, 기준 또는 제어와 같은 AWS Control Tower가 생성하거나 관리하는 리소스에 적용됩니다.

**AWS Control Tower 수명 주기 이벤트의 특성**
+ 각 수명 주기 이벤트에 대해 이벤트 로그는 원래 Control Tower 작업이 성공적으로 완료되었는지 또는 실패했는지 여부를 표시합니다.
+ AWS CloudTrail 는 각 수명 주기 이벤트를 *API가 아닌 AWS 서비스 이벤트*로 자동 기록합니다. 자세한 내용은 [AWS CloudTrail 사용자 안내서](https://docs.aws.amazon.com//awscloudtrail/latest/userguide/non-api-aws-service-events.html)를 참조하세요.
+ 또한 각 수명 주기 이벤트는 Amazon EventBridge 및 Amazon CloudWatch Events 서비스로 전달됩니다. **참고:** EventBridge에서 수명 주기 이벤트를 수신하려면 로깅이 활성화된 활성 AWS CloudTrail 추적이 있어야 합니다. 를 통해 전달되는 AWS 서비스 이벤트에 대한 자세한 내용은 Amazon EventBridge 사용 설명서의 [AWS CloudTrail을 통해 전달되는 AWS 서비스 이벤트를](https://docs.aws.amazon.com//eventbridge/latest/userguide/eb-service-event-cloudtrail.html) AWS CloudTrail참조하세요.

**AWS Control Tower의 수명 주기 이벤트는 두 가지 주요 이점을 제공합니다.**
+ 수명 주기 이벤트는 AWS Control Tower 작업의 완료를 등록하므로 수명 주기 이벤트의 상태에 따라 자동화 워크플로의 다음 단계를 트리거할 수 있는 Amazon EventBridge 규칙 또는 Amazon CloudWatch Events 규칙을 생성할 수 있습니다.
+ 로그는 관리자 및 감사자가 조직의 특정 활동 유형을 검토하는 데 도움이 되는 추가 세부 정보를 제공합니다.

**수명 주기 이벤트 작동 방식**

 AWS Control Tower는 작업을 구현하기 위해 여러 서비스에 의존합니다. 따라서 각 수명 주기 이벤트는 일련의 작업이 완료된 후에만 기록됩니다. 예를 들어 OU에서 제어를 사용하도록 설정하면 AWS Control Tower는 요청을 구현하는 일련의 하위 단계를 시작합니다. 전체 하위 단계의 최종 결과는 수명 주기 이벤트의 상태로 로그에 기록됩니다.
+ 모든 기본 하위 단계가 성공적으로 완료되면 수명 주기 이벤트 상태가 **성공**으로 기록됩니다.
+ 기본 하위 단계 중 하나라도 성공적으로 완료되지 않은 경우 수명 주기 이벤트 상태는 **실패**로 기록됩니다.

각 수명 주기 이벤트에는 AWS Control Tower 작업이 시작된 시점을 보여 주는 타임스탬프와 수명 주기 이벤트가 완료된 시점을 보여 주고 성공 또는 실패를 표시하는 또 다른 타임스탬프가 포함되어 있습니다.

**Control Tower에서 수명 주기 이벤트 보기**

AWS Control Tower 대시보드의 **활동** 페이지에서 수명 주기 이벤트를 볼 수 있습니다.
+ **활동** 페이지로 이동하려면 왼쪽 탐색 창에서 **활동**을 선택합니다.
+ 특정 이벤트에 대한 세부 정보를 보려면 이벤트를 선택한 다음 오른쪽 상단의 **세부 정보 보기** 버튼을 선택합니다.

 AWS Control Tower 수명 주기 이벤트를 워크플로에 통합하는 방법에 대한 자세한 내용은 블로그 게시물 [Using lifecycle events to track AWS Control Tower actions and trigger automated workflows](https://aws.amazon.com//blogs/mt/using-lifecycle-events-to-track-aws-control-tower-actions-and-trigger-automated-workflows/)를 참조하세요.

**CreateManagedAccount 및 UpdateManagedAccount 수명 주기 이벤트의 예상 동작**

 AWS Control Tower에서 계정을 생성하거나 계정을 등록하면 이러한 두 작업은 동일한 내부 API를 직접 호출합니다. 프로세스 중에 오류가 발생한다면 일반적으로 계정이 생성되었지만 완전히 프로비저닝되지 않았을 때 발생합니다. 오류 후 계정 생성을 재시도하거나 프로비저닝된 제품을 업데이트하려고 하면 AWS Control Tower에서 계정이 이미 있음을 확인합니다.

계정이 존재하므로 AWS Control Tower는 재시도 요청 종료 시 `CreateManagedAccount` 수명 주기 이벤트 대신 `UpdateManagedAccount` 수명 주기 이벤트를 기록합니다. 오류로 인해 다른 `CreateManagedAccount` 이벤트가 표시될 것이라고 예상했을 수 있습니다. 그러나 `UpdateManagedAccount` 수명 주기 이벤트는 예상된 정상 동작입니다.

 자동화된 방법을 사용하여 AWS Control Tower에 계정을 생성하거나 등록하려는 경우 Lambda 함수를 프로그래밍하여 **UpdateManagedAccount** 수명 주기 이벤트와 **CreateManagedAccount** 수명 주기 이벤트를 찾습니다.

**수명 주기 이벤트 이름**

각 수명 주기 이벤트의 이름은 AWS CloudTrail에 의해 기록되는 원래 AWS Control Tower 작업과 일치하도록 지정됩니다. 즉, 예를 들어 AWS Control Tower `CreateManagedAccount` CloudTrail 이벤트에서 발생한 수명 주기 이벤트의 이름은 `CreateManagedAccount`로 지정됩니다.

다음 목록의 각 이름은 `JSON` 형식으로 기록된 세부 정보 예제에 대한 링크입니다. 이러한 예제에 표시된 추가 세부 정보는 Amazon CloudWatch 이벤트 로그에서 가져온 것입니다.

`JSON`에서는 주석을 지원하지 않지만 설명용으로 예제에 몇 가지 주석이 추가되었습니다. 주석은 앞에 “//”가 붙고 예제의 오른쪽에 표시됩니다.

이러한 예제에서는 일부 계정 이름과 조직 이름이 가려져 있습니다. `accountId`는 항상 12자리 숫자 시퀀스이며, 예제에서 이 시퀀스는 “xxxxxxxxxx”로 대체됩니다. `organizationalUnitID`는 문자 및 숫자의 고유한 문자열입니다. 예제에서는 그 형태가 보존되어 있습니다.
+ [`CreateManagedAccount`](#create-managed-account): 로그는 AWS Control Tower가 Account Factory를 사용하여 새 계정을 만들고 프로비저닝하기 위한 모든 작업을 성공적으로 완료했는지 여부를 기록합니다.
+ [`UpdateManagedAccount`](#update-managed-account): 로그는 AWS Control Tower가 이전에 Account Factory를 사용하여 만든 계정과 연결된 프로비저닝된 제품을 업데이트하기 위한 모든 작업을 성공적으로 완료했는지 여부를 기록합니다.
+ [`EnableGuardrail`](#enable-control): 로그는 AWS Control Tower가 OU에 대한 제어를 활성화하기 위한 모든 작업을 성공적으로 완료했는지 여부를 기록합니다.
+ [`DisableGuardrail`](#disable-control): 로그는 AWS Control Tower가 OU에 대한 제어를 비활성화하는 모든 작업을 성공적으로 완료했는지 여부를 기록합니다.
+ [`SetupLandingZone`](#setup-landing-zone): 로그는 AWS Control Tower가 랜딩 존을 설정하기 위한 모든 작업을 성공적으로 완료했는지 여부를 기록합니다.
+ [`UpdateLandingZone`](#update-landing-zone): 로그는 AWS Control Tower가 기존 랜딩 존을 업데이트하기 위한 모든 작업을 성공적으로 완료했는지 여부를 기록합니다.
+ [`RegisterOrganizationalUnit`](#register-organizational-unit): 로그는 AWS Control Tower가 OU에서 거버넌스 기능을 활성화하기 위한 모든 작업을 성공적으로 완료했는지 여부를 기록합니다.
+ [`DeregisterOrganizationalUnit`](#deregister-organizational-unit): 로그는 AWS Control Tower가 OU에서 거버넌스 기능을 비활성화하기 위한 모든 작업을 성공적으로 완료했는지 여부를 기록합니다.
+ [`PrecheckOrganizationalUnit`](#precheck-organizational-unit): 로그는 AWS Control Tower가 **거버넌스 확장** 작업이 성공적으로 완료되는 것을 방해하는 리소스를 감지했는지 여부를 기록합니다.
+ [`EnableBaseline`](#enable-baseline-lfc): 로그는 AWS Control Tower가 OU 아래의 대상 멤버 계정에서 새 기준을 활성화하기 위한 모든 작업을 성공적으로 완료했는지 여부를 기록합니다. `EnableBaseline` API 또는 콘솔을 사용하여 활성화 작업을 시작할 수 있습니다.
+ [`ResetEnabledBaseline`](#reset-enabled-baseline-lfc): 로그는 AWS Control Tower가 OU 아래의 대상 멤버 계정에서 활성화된 기존 기준을 재설정하는 모든 작업을 성공적으로 완료했는지 여부를 기록합니다. 재설정 작업은 `ResetEnabledBaseline` API 또는 콘솔을 사용하여 시작할 수 있습니다.
+ [`UpdateEnabledBaseline`](#update-enabled-baseline-lfc): 로그는 AWS Control Tower가 OU 아래의 대상 멤버 계정에서 활성화된 기존 기준을 업데이트하는 모든 작업을 성공적으로 완료했는지 여부를 기록합니다. 업데이트 작업은 `UpdateEnabledBaseline` API 또는 콘솔을 사용하여 시작할 수 있습니다.
+ [`DisableBaseline`](#disable-baseline-lfc): 로그는 AWS Control Tower가 OU 아래의 대상 멤버 계정에서 활성화된 기존 기준을 비활성화하는 모든 작업을 성공적으로 완료했는지 여부를 기록합니다. 비활성화 작업은 `DisableBaseline` API 또는 콘솔을 사용하여 시작할 수 있습니다.

다음 섹션에서는 AWS Control Tower 수명 주기 이벤트의 목록을 각 수명 주기 이벤트 유형에 대해 기록된 세부 정보 예제와 함께 제공합니다.

## `CreateManagedAccount`
<a name="create-managed-account"></a>

이 수명 주기 이벤트는 AWS Control Tower가 Account Factory를 사용하여 성공적으로 새 계정을 만들고 프로비저닝했는지 여부를 기록합니다. 이 이벤트는 AWS Control Tower `CreateManagedAccount` CloudTrail 이벤트에 해당합니다. 수명 주기 이벤트 로그에는 새로 만든 계정의 `accountName` 및 `accountId`와 계정이 배치된 OU의 `organizationalUnitName` 및 `organizationalUnitId`가 포함됩니다.

```
{
    "version": "0",
    "id": "999cccaa-eaaa-0000-1111-123456789012",         
    "detail-type": "AWS Service Event via CloudTrail",
    "source": "aws.controltower",
    "account": "XXXXXXXXXXXX",                                   // Management account ID. 
    "time": "2018-08-30T21:42:18Z",                              // Format: yyyy-MM-dd'T'hh:mm:ssZ 
    "region": "us-east-1",                                       // AWS Control Tower home region.
    "resources": [ ],
    "detail": {
        "eventVersion": "1.05",
        "userIdentity": {
            "accountId": "XXXXXXXXXXXX",                       
            "invokedBy": "AWS Internal"
        },
        "eventTime": "2018-08-30T21:42:18Z",                     // Timestamp when call was made. Format: yyyy-MM-dd'T'hh:mm:ssZ.
        "eventSource": "controltower.amazonaws.com",
        "eventName": "CreateManagedAccount",                  
        "awsRegion": "us-east-1",                               
        "sourceIPAddress": "AWS Internal",
        "userAgent": "AWS Internal",
        "eventID": "0000000-0000-0000-1111-123456789012",        
        "readOnly": false,
        "eventType": "AwsServiceEvent",
        "serviceEventDetails": {
            "createManagedAccountStatus": {
                "organizationalUnit":{
                    "organizationalUnitName":"Custom",
                    "organizationalUnitId":"ou-XXXX-l3zc8b3h"

                    },
                "account":{
                    "accountName":"LifeCycle1",
                    "accountId":"XXXXXXXXXXXX"
                    },
                "state":"SUCCEEDED",
                "message":"AWS Control Tower successfully created a managed account.",
                "requestedTimestamp":"2019-11-15T11:45:18+0000",
                "completedTimestamp":"2019-11-16T12:09:32+0000"}
        }
    }
}
```

## `UpdateManagedAccount`
<a name="update-managed-account"></a>

이 수명 주기 이벤트는 AWS Control Tower가 이전에 Account Factory를 사용하여 만든 계정과 연결된 프로비저닝된 제품을 성공적으로 업데이트했는지 여부를 기록합니다. 이 이벤트는 AWS Control Tower `UpdateManagedAccount` CloudTrail 이벤트에 해당합니다. 수명 주기 이벤트 로그에는 연결된 계정의 `accountName` 및 `accountId`와 업데이트된 계정이 배치된 OU의 `organizationalUnitName` 및 `organizationalUnitId`가 포함됩니다.

```
{
    "version": "0",
    "id": "999cccaa-eaaa-0000-1111-123456789012",                
    "detail-type": "AWS Service Event via CloudTrail",
    "source": "aws.controltower",
    "account": "XXXXXXXXXXXX",                                   // AWS Control Tower organization management account.
    "time": "2018-08-30T21:42:18Z",                              // Format: yyyy-MM-dd'T'hh:mm:ssZ 
    "region": "us-east-1",                                       // AWS Control Tower home region.
    "resources": [],
    "detail": {
        "eventVersion": "1.05",
        "userIdentity": {
            "accountId": "XXXXXXXXX",                        
            "invokedBy": "AWS Internal"
        },
        "eventTime": "2018-08-30T21:42:18Z",                     // Timestamp when call was made. Format: yyyy-MM-dd'T'hh:mm:ssZ.
        "eventSource": "controltower.amazonaws.com",
        "eventName": "UpdateManagedAccount",                   
        "awsRegion": "us-east-1",                                
        "sourceIPAddress": "AWS Internal",
        "userAgent": "AWS Internal",
        "eventID": "0000000-0000-0000-1111-123456789012",        
        "readOnly": false,
        "eventType": "AwsServiceEvent",
        "serviceEventDetails": {
            "updateManagedAccountStatus": {
                "organizationalUnit":{
                    "organizationalUnitName":"Custom",
                    "organizationalUnitId":"ou-XXXX-l3zc8b3h"
                    },
                "account":{
                    "accountName":"LifeCycle1",
                    "accountId":"XXXXXXXXXXXX"
                    },
                "state":"SUCCEEDED",
                "message":"AWS Control Tower successfully updated a managed account.",
                "requestedTimestamp":"2019-11-15T11:45:18+0000",
                "completedTimestamp":"2019-11-16T12:09:32+0000"}
        }
    }
}
```

## `EnableGuardrail`
<a name="enable-control"></a>

이 수명 주기 이벤트는 AWS Control Tower가 AWS Control Tower에서 관리 중인 OU에 대한 제어를 성공적으로 활성화했는지 여부를 기록합니다. 이 이벤트는 AWS Control Tower `EnableGuardrail` CloudTrail 이벤트에 해당합니다. 수명 주기 이벤트 로그에는 제어의 `guardrailId` 및 `guardrailBehavior`와 제어가 활성화된 OU의 `organizationalUnitName` 및 `organizationalUnitId`가 포함됩니다.

```
{
    "version": "0",
    "id": "999cccaa-eaaa-0000-1111-123456789012",         
    "detail-type": "AWS Service Event via CloudTrail",
    "source": "aws.controltower",
    "account": "XXXXXXXXXXXX",                                 
    "time": "2018-08-30T21:42:18Z",                              // End-time of action. Format: yyyy-MM-dd'T'hh:mm:ssZ 
    "region": "us-east-1",                                       // AWS Control Tower home region.
    "resources": [ ],
    "detail": {
        "eventVersion": "1.05",
        "userIdentity": {
            "accountId": "XXXXXXXXXXXX",                    
            "invokedBy": "AWS Internal"
        },
        "eventTime": "2018-08-30T21:42:18Z",                  
        "eventSource": "controltower.amazonaws.com",             
        "eventName": "EnableGuardrail",                   
        "awsRegion": "us-east-1",                              
        "sourceIPAddress": "AWS Internal",
        "userAgent": "AWS Internal",
        "eventID": "0000000-0000-0000-1111-123456789012",       
        "readOnly": false,
        "eventType": "AwsServiceEvent",
        "serviceEventDetails": {
            "enableGuardrailStatus": {
                "organizationalUnits": [
                    {
                      "organizationalUnitName": "Custom",
                      "organizationalUnitId": "ou-vwxy-18vy4yro"
                    }
                  ],
                  "guardrails": [
                    {
                      "guardrailId": "AWS-GR_RDS_INSTANCE_PUBLIC_ACCESS_CHECK",
                      "guardrailBehavior": "DETECTIVE"
                    }
                  ],
                  "state": "SUCCEEDED",
                  "message": "AWS Control Tower successfully enabled a guardrail on an organizational unit.",
                  "requestTimestamp": "2019-11-12T09:01:07+0000",
                  "completedTimestamp": "2019-11-12T09:01:54+0000"
                }
        }
    }
}
```

## `DisableGuardrail`
<a name="disable-control"></a>

이 수명 주기 이벤트는 AWS Control Tower가 AWS Control Tower에서 관리 중인 OU에 대한 제어를 성공적으로 비활성화했는지 여부를 기록합니다. 이 이벤트는 AWS Control Tower `DisableGuardrail` CloudTrail 이벤트에 해당합니다. 수명 주기 이벤트 로그에는 제어의 `guardrailId` 및 `guardrailBehavior`와 제어가 비활성화된 OU의 `organizationalUnitName` 및 `organizationalUnitId`가 포함됩니다.

```
{
    "version": "0",
    "id": "999cccaa-eaaa-0000-1111-123456789012",     
    "detail-type": "AWS Service Event via CloudTrail",
    "source": "aws.controltower",
    "account": "XXXXXXXXXXXX",                         
    "time": "2018-08-30T21:42:18Z",                   
    "region": "us-east-1",                           
    "resources": [ ],
    "detail": {
        "eventVersion": "1.05",
        "userIdentity": {
            "accountId": "XXXXXXXXXXXX",                 
            "invokedBy": "AWS Internal"
        },
        "eventTime": "2018-08-30T21:42:18Z",            
        "eventSource": "controltower.amazonaws.com",
        "eventName": "DisableGuardrail",                 
        "awsRegion": "us-east-1",                            
        "sourceIPAddress": "AWS Internal",
        "userAgent": "AWS Internal",
        "eventID": "0000000-0000-0000-1111-123456789012",     
        "readOnly": false,
        "eventType": "AwsServiceEvent",
        "serviceEventDetails": {
            "disableGuardrailStatus": {
                   "organizationalUnits": [
                    {
                      "organizationalUnitName": "Custom",
                      "organizationalUnitId": "ou-vwxy-18vy4yro"
                    }
                  ],
                  "guardrails": [
                    {
                      "guardrailId": "AWS-GR_RDS_INSTANCE_PUBLIC_ACCESS_CHECK",
                      "guardrailBehavior": "DETECTIVE"
                    }
                  ],
                  "state": "SUCCEEDED",
                  "message": "AWS Control Tower successfully disabled a guardrail on an organizational unit.",
                  "requestTimestamp": "2019-11-12T09:01:07+0000",
                  "completedTimestamp": "2019-11-12T09:01:54+0000"
                }
            }
        }
    }
```

## `SetupLandingZone`
<a name="setup-landing-zone"></a>

이 수명 주기 이벤트는 AWS Control Tower가 랜딩 존을 성공적으로 설정했는지 여부를 기록합니다. 이 이벤트는 AWS Control Tower `SetupLandingZone` CloudTrail 이벤트에 해당합니다. 수명 주기 이벤트 로그에는 AWS Control Tower가 관리 계정에서 생성하는 조직의 ID인 `rootOrganizationalId`가 포함됩니다. 또한 로그 항목에는 각 OU의 `organizationalUnitName` 및 `organizationalUnitId`와 AWS Control Tower가 랜딩 존을 설정할 때 생성되는 각 계정의 `accountName` 및 `accountId`도 포함됩니다.

```
{
    "version": "0",
    "id": "999cccaa-eaaa-0000-1111-123456789012",                // Request ID.
    "detail-type": "AWS Service Event via CloudTrail",
    "source": "aws.controltower",
    "account": "XXXXXXXXXXXX",                                   // Management account ID.
    "time": "2018-08-30T21:42:18Z",                              // Event time from CloudTrail.
    "region": "us-east-1",                                       // Management account CloudTrail region.
    "resources": [ ],
    "detail": {
        "eventVersion": "1.05",
        "userIdentity": {
            "accountId": "XXXXXXXXXXXX",                         // Management-account ID.
            "invokedBy": "AWS Internal"
        },
        "eventTime": "2018-08-30T21:42:18Z",                     // Timestamp when call was made. Format: yyyy-MM-dd'T'hh:mm:ssZ.
        "eventSource": "controltower.amazonaws.com",
        "eventName": "SetupLandingZone",
        "awsRegion": "us-east-1",                                // AWS Control Tower home region.
        "sourceIPAddress": "AWS Internal",
        "userAgent": "AWS Internal",
        "eventID": "CloudTrail_event_ID",                        // This value is generated by CloudTrail.
        "readOnly": false,
        "eventType": "AwsServiceEvent",
        "serviceEventDetails": {
            "setupLandingZoneStatus": {
                "state": "SUCCEEDED",                             // Status of entire lifecycle operation.
                "message": "AWS Control Tower successfully set up a new landing zone.",                
                "rootOrganizationalId" : "r-1234",
                "organizationalUnits" : [                         // Use a list.
                  {
                    "organizationalUnitName": "Security",             // Security OU name.
                    "organizationalUnitId": "ou-adpf-302pk332"    // Security OU ID.
                  },
                  {
                    "organizationalUnitName": "Custom",           // Custom OU name.
                    "organizationalUnitId": "ou-adpf-302pk332"    // Custom OU ID. 
                  },
                ],
               "accounts": [                                      // All created accounts are here. Use a list of "account" objects.

                  {
                    "accountName": "Audit",  
                    "accountId": "XXXXXXXXXXXX"                        
                  },
                  {
                    "accountName": "Log archive",                 
                    "accountId": "XXXXXXXXXXXX"
                  }
              ],
              "requestedTimestamp": "2018-08-30T21:42:18Z",
              "completedTimestamp": "2018-08-30T21:42:18Z"
            }
        }
    }
}
```

## `UpdateLandingZone`
<a name="update-landing-zone"></a>

이 수명 주기 이벤트는 AWS Control Tower가 기존 랜딩 존을 성공적으로 업데이트했는지 여부를 기록합니다. 이 이벤트는 AWS Control Tower `UpdateLandingZone` CloudTrail 이벤트에 해당합니다. 수명 주기 이벤트 로그에는 AWS Control Tower에서 관리하는 (업데이트된) 조직의 ID인 `rootOrganizationalId`가 포함됩니다. 또한 로그 항목에는 각 OU의 `organizationalUnitName` 및 `organizationalUnitId`와 AWS Control Tower가 원래 랜딩 존을 설정할 때 이전에 생성된 각 계정의 `accountName` 및 `accountId`도 포함됩니다.

```
{
    "version": "0",
    "id": "999cccaa-eaaa-0000-1111-123456789012",                // Request ID.
    "detail-type": "AWS Service Event via CloudTrail",
    "source": "aws.controltower",
    "account": "XXXXXXXXXXXX",                                   // Management account ID.
    "time": "2018-08-30T21:42:18Z",                              // Event time from CloudTrail.
    "region": "us-east-1",                                       // Management account CloudTrail region.
    "resources": [ ],
    "detail": {
        "eventVersion": "1.05",
        "userIdentity": {
            "accountId": "XXXXXXXXXXXX",                         // Management account ID.
            "invokedBy": "AWS Internal"
        },
        "eventTime": "2018-08-30T21:42:18Z",                     // Timestamp when call was made. Format: yyyy-MM-dd'T'hh:mm:ssZ.
        "eventSource": "controltower.amazonaws.com",
        "eventName": "UpdateLandingZone",
        "awsRegion": "us-east-1",                                // AWS Control Tower home region.
        "sourceIPAddress": "AWS Internal",
        "userAgent": "AWS Internal",
        "eventID": "CloudTrail_event_ID",                        // This value is generated by CloudTrail.

        "readOnly": false,
        "eventType": "AwsServiceEvent",
        "serviceEventDetails": {
            "updateLandingZoneStatus": {
                "state": "SUCCEEDED",                            // Status of entire operation.
                "message": "AWS Control Tower successfully updated a landing zone.",                

                "rootOrganizationalId" : "r-1234",
                "organizationalUnits" : [                         // Use a list.
                  {
                    "organizationalUnitName": "Security",             // Security OU name.
                    "organizationalUnitId": "ou-adpf-302pk332"    // Security OU ID.
                  },
                  {
                    "organizationalUnitName": "Custom",            // Custom OU name.
                    "organizationalUnitId": "ou-adpf-302pk332"     // Custom OU ID.
                  },
                ],
               "accounts": [                                       // All created accounts are here. Use a list of "account" objects.

                  {
                    "accountName": "Audit",  
                    "accountId": "XXXXXXXXXXXX"                        
                  },
                  {
                    "accountName": "Log archive",                 
                    "accountId": "XXXXXXXXXX"
                  }
              ],
              "requestedTimestamp": "2018-08-30T21:42:18Z",
              "completedTimestamp": "2018-08-30T21:42:18Z"
            }
        }
    }
}
```

## `RegisterOrganizationalUnit`
<a name="register-organizational-unit"></a>

이 수명 주기 이벤트는 AWS Control Tower가 OU에서 거버넌스 기능을 성공적으로 활성화했는지 여부를 기록합니다. 이 이벤트는 AWS Control Tower `RegisterOrganizationalUnit` CloudTrail 이벤트에 해당합니다. 수명 주기 이벤트 로그에는 AWS Control Tower가 거버넌스 기능을 활성화한 OU의 `organizationalUnitName` 및 `organizationalUnitId`가 포함됩니다.

```
{
    "version": "0",
    "id": "999cccaa-eaaa-0000-1111-123456789012",            
    "detail-type": "AWS Service Event via CloudTrail", 
    "source": "aws.controltower",
    "account": "123456789012",                               
    "time": "2018-08-30T21:42:18Z",                  
    "region": "us-east-1",                       
    "resources": [ ],
    "detail": {
        "eventVersion": "1.05",
        "userIdentity": {
            "accountId": "XXXXXXXXXXXX",                
            "invokedBy": "AWS Internal"
        },
        "eventTime": "2018-08-30T21:42:18Z",               
        "eventSource": "controltower.amazonaws.com",
        "eventName": "RegisterOrganizationalUnit",        
        "awsRegion": "us-east-1",                           
        "sourceIPAddress": "AWS Internal",
        "userAgent": "AWS Internal",
        "eventID": "0000000-0000-0000-1111-123456789012",    
        "readOnly": false,
        "eventType": "AwsServiceEvent",
        "serviceEventDetails": {
            "registerOrganizationalUnitStatus": {
                "state": "SUCCEEDED",                        

                "message": "AWS Control Tower successfully registered an organizational unit.",

                "organizationalUnit" :                        
                  {
                    "organizationalUnitName": "Test",            
                    "organizationalUnitId": "ou-adpf-302pk332"    
                  }
                "requestedTimestamp": "2018-08-30T21:42:18Z",
                "completedTimestamp": "2018-08-30T21:42:18Z" 
            }
        }
    }
}
```

## `DeregisterOrganizationalUnit`
<a name="deregister-organizational-unit"></a>

이 수명 주기 이벤트는 AWS Control Tower가 OU에서 거버넌스 기능을 성공적으로 비활성화했는지 여부를 기록합니다. 이 이벤트는 AWS Control Tower `DeregisterOrganizationalUnit` CloudTrail 이벤트에 해당합니다. 수명 주기 이벤트 로그에는 AWS Control Tower가 거버넌스 기능을 비활성화한 OU의 `organizationalUnitName` 및 `organizationalUnitId`가 포함됩니다.

```
{
    "version": "0",
    "id": "999cccaa-eaaa-0000-1111-123456789012",    
    "detail-type": "AWS Service Event via CloudTrail",
    "source": "aws.controltower",
    "account": "XXXXXXXXXXXX",                  
    "time": "2018-08-30T21:42:18Z", 
    "region": "us-east-1",            
    "resources": [ ],
    "detail": {
        "eventVersion": "1.05",
        "userIdentity": {
            "accountId": "XXXXXXXXXXXX",              
            "invokedBy": "AWS Internal"
        },
        "eventTime": "2018-08-30T21:42:18Z",               
        "eventSource": "controltower.amazonaws.com",
        "eventName": "DeregisterOrganizationalUnit",     
        "awsRegion": "us-east-1",                       
        "sourceIPAddress": "AWS Internal",
        "userAgent": "AWS Internal",
        "eventID": "0000000-0000-0000-1111-123456789012", 
        "readOnly": false,
        "eventType": "AwsServiceEvent",
        "serviceEventDetails": {
            "deregisterOrganizationalUnitStatus": {                 
                "state": "SUCCEEDED",               
                "message": "AWS Control Tower successfully deregistered an organizational unit, and enabled mandatory guardrails on the new organizational unit.",
                "organizationalUnit" :                        
                  {
                    "organizationalUnitName": "Test",                   // Foundational OU name.
                    "organizationalUnitId": "ou-adpf-302pk332"          // Foundational OU ID.
                  },
                "requestedTimestamp": "2018-08-30T21:42:18Z", 
                "completedTimestamp": "2018-08-30T21:42:18Z"  
            }
            }
        }
    }
```

## `PrecheckOrganizationalUnit`
<a name="precheck-organizational-unit"></a>

이 수명 주기 이벤트는 AWS Control Tower가 OU에서 사전 확인을 성공적으로 수행했는지 여부를 기록합니다. 이 이벤트는 AWS Control Tower `PrecheckOrganizationalUnit` CloudTrail 이벤트에 해당합니다. 수명 주기 이벤트 로그에는 OU 등록 프로세스 중에 AWS Control Tower가 사전 확인을 수행한 각 리소스에 대한 `Id`, `Name` 및 `failedPrechecks` 값에 대한 필드가 포함되어 있습니다.

또한 이벤트 로그에는 `accountName`, `accountId` 및 `failedPrechecks` 필드를 포함하여 사전 확인이 수행된 중첩 계정에 대한 정보도 포함되어 있습니다.

`failedPrechecks` 값이 비어 있는 경우 해당 리소스에 대한 모든 사전 확인이 성공적으로 통과되었음을 의미합니다.
+ 이 이벤트는 사전 확인 실패가 있는 경우에만 내보내집니다.
+ 빈 OU를 등록하는 경우 이 이벤트는 내보내지지 않습니다.

이벤트 예제:

```
{
  "eventVersion": "1.08",
  "userIdentity": {
    "accountId": "XXXXXXXXXXXX",
    "invokedBy": "AWS Internal"
  },
  "eventTime": "2021-09-20T22:45:43Z",
  "eventSource": "controltower.amazonaws.com",
  "eventName": "PrecheckOrganizationalUnit",
  "awsRegion": "us-west-2",
  "sourceIPAddress": "AWS Internal",
  "userAgent": "AWS Internal",
  "eventID": "b41a9d67-0da4-4dc5-a87a-25fa19dc5305",
  "readOnly": false,
  "eventType": "AwsServiceEvent",
  "managementEvent": true,
  "recipientAccountId": "XXXXXXXXXXXX",
  "serviceEventDetails": {
    "precheckOrganizationalUnitStatus": {
      "organizationalUnit": {
        "organizationalUnitName": "Ou-123",
        "organizationalUnitId": "ou-abcd-123456",
        "failedPrechecks": [
            "SCP_CONFLICT"
          ]
      },
      "accounts": [
        {
          "accountName": "Child Account 1",
          "accountId": "XXXXXXXXXXXX",
          "failedPrechecks": [
            "FAILED_TO_ASSUME_ROLE"
          ]
        },
        {
          "accountName": "Child Account 2",
          "accountId": "XXXXXXXXXXXX",
          "failedPrechecks": [
            "FAILED_TO_ASSUME_ROLE"
          ]
        },
        {
          "accountName": "Management Account",
          "accountId": "XXXXXXXXXXXX",
          "failedPrechecks": [
            "MISSING_PERMISSIONS_AF_PRODUCT"
          ]
        },
        {
          "accountName": "Child Account 3",
          "accountId": "XXXXXXXXXXXX",
          "failedPrechecks": []
        },
        ...
      ],
      "state": "FAILED",
      "message": "AWS Control Tower failed to register an organizational unit due to pre-check failures. Go to the OU details page to download a list of failed pre-checks for the OU and accounts within.",
      "requestedTimestamp": "2021-09-20T22:44:02+0000",
      "completedTimestamp": "2021-09-20T22:45:43+0000"
    }
  },
  "eventCategory": "Management"
}
```

## `EnableBaseline`
<a name="enable-baseline-lfc"></a>

이 수명 주기 이벤트는 AWS Control Tower가 OU 아래의 대상 멤버 계정에서 기준을 성공적으로 활성화했는지 여부를 기록합니다. 이 이벤트는 AWS Control Tower `RegisterOrganizationalUnit` 또는 `EnableBaseline` CloudTrail 이벤트에 해당합니다. 수명 주기 이벤트 로그에는 활성화된 기준과 해당 버전, 기준이 활성화된 `targetIdentifier`, 상위 OU에서 활성화된 기준의 `parentIdentifier`, SUCCEEDED 또는 FAILED 상태를 보여주는 `statusSummary`, 작업의 추가 파라미터 및 타임스탬프가 포함됩니다.

```
{
    "eventVersion": "1.11",
    "userIdentity": {
        "accountId": "XXXXXXXXXXXX",
        "invokedBy": "AWS Internal"
    },
    "eventTime": "2025-02-10T17:14:57Z",
    "eventSource": "controltower.amazonaws.com",
    "eventName": "EnableBaseline",
    "awsRegion": "us-east-2",
    "sourceIPAddress": "AWS Internal",
    "userAgent": "AWS Internal",
    "requestParameters": null,
    "responseElements": null,
    "eventID": "366911a2-4fa6-4e4a-ac2b-280f627e0027",
    "readOnly": false,
    "eventType": "AwsServiceEvent",
    "managementEvent": true,
    "recipientAccountId": "XXXXXXXXXXXX",
    "serviceEventDetails": {
        "enableBaselineStatus": {
            "enabledBaselineDetails": {
                "arn": "arn:aws:controltower:us-east-2:XXXXXXXXXXXX:enabledbaseline/XXXXXXXXXXXXXXXX",
                "parentIdentifier": "arn:aws:controltower:us-east-2:XXXXXXXXXXXX:enabledbaseline/XXXXXXXXXXXXXXXX",
                "targetIdentifier": "arn:aws:organizations::XXXXXXXXXXXX:account/o-ern76xmzvf/XXXXXXXXXXXX",
                "baselineIdentifier": "arn:aws:controltower:us-east-2::baseline/XXXXXXXXXXXXXXX",
                "baselineVersion": "4.0",
                "statusSummary": {
                    "lastOperationIdentifier": "37f5eb68-e5b9-4c70-ae76-4ca15f6b16de",
                    "status": "SUCCEEDED"
                },
                "parameters": [
                    {
                        "key": "IdentityCenterEnabledBaselineArn",
                        "value": {
                            "untyped": {
                                "object": "arn:aws:controltower:us-east-2:XXXXXXXXXXXX:enabledbaseline/XXXXXXXXXXXXXXXX"                            }
                        }
                    }
                ]
            },
            "requestedTimestamp": "2025-02-10T17:07:09+0000",
            "completedTimestamp": "2025-02-10T17:14:57+0000"
        }
    },
    "eventCategory": "Management"
}
```

## `ResetEnabledBaseline`
<a name="reset-enabled-baseline-lfc"></a>

이 수명 주기 이벤트는 AWS Control Tower가 OU 아래의 대상 멤버 계정에서 활성화된 기존 기준을 성공적으로 재설정했는지 여부를 기록합니다. 이 이벤트는 AWS Control Tower `RegisterOrganizationalUnit` 또는 `ResetEnabledBaseline` CloudTrail 이벤트에 해당합니다. 수명 주기 이벤트 로그에는 활성화된 기준과 해당 버전, 기준이 활성화된 `targetIdentifier`, 상위 OU에서 활성화된 기준의 `parentIdentifier`, SUCCEEDED 또는 FAILED 상태를 보여주는 `statusSummary`, 작업의 추가 파라미터 및 타임스탬프가 포함됩니다.

```
{
    "eventVersion": "1.11",
    "userIdentity": {
        "accountId": "XXXXXXXXXXXX",
        "invokedBy": "AWS Internal"
    },
    "eventTime": "2025-02-10T21:17:55Z",
    "eventSource": "controltower.amazonaws.com",
    "eventName": "ResetEnabledBaseline",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "AWS Internal",
    "userAgent": "AWS Internal",
    "requestParameters": null,
    "responseElements": null,
    "eventID": "c01a32e1-13ab-4b46-8f1b-00699ef6f989",
    "readOnly": false,
    "eventType": "AwsServiceEvent",
    "managementEvent": true,
    "recipientAccountId": "XXXXXXXXXXXX",
    "serviceEventDetails": {
        "resetEnabledBaselineStatus": {
            "enabledBaselineDetails": {
                "arn": "arn:aws:controltower:us-west-2:XXXXXXXXXXXX:enabledbaseline/XXXXXXXXXXXXXXXX",
                "parentIdentifier": "arn:aws:controltower:us-west-2:XXXXXXXXXXXX:enabledbaseline/XXXXXXXXXXXXXXXX",
                "targetIdentifier": "arn:aws:organizations::XXXXXXXXXXXX:account/o-0uh2kplf6d/XXXXXXXXXXXX",
                "baselineIdentifier": "arn:aws:controltower:us-west-2::baseline/XXXXXXXXXXXXXXX",
                "baselineVersion": "1.0",
                "statusSummary": {
                    "lastOperationIdentifier": "3e364c89-89fa-42b8-9776-9f7cc47ba1fa",
                    "status": "SUCCEEDED"
                },
                "parameters": []
            },
            "requestedTimestamp": "2025-02-10T21:14:24Z",
            "completedTimestamp": "2025-02-10T21:17:54+0000"
        }
    },
    "eventCategory": "Management"
}
```

## `UpdateEnabledBaseline`
<a name="update-enabled-baseline-lfc"></a>

이 수명 주기 이벤트는 AWS Control Tower가 OU 아래의 대상 멤버 계정에서 활성화된 기존 기준을 성공적으로 업데이트했는지 여부를 기록합니다. 이 이벤트는 AWS Control Tower `RegisterOrganizationalUnit` 또는 `UpdateEnabledBaseline` CloudTrail 이벤트에 해당합니다. 수명 주기 이벤트 로그에는 활성화된 기준과 해당 버전, 기준이 활성화된 `targetIdentifier`, 상위 OU에서 활성화된 기준의 `parentIdentifier`, SUCCEEDED 또는 FAILED 상태를 보여주는 `statusSummary`, 작업의 추가 파라미터 및 타임스탬프가 포함됩니다.

```
{
    "eventVersion": "1.11",
    "userIdentity": {
        "accountId": "XXXXXXXXXXXX",
        "invokedBy": "AWS Internal"
    },
    "eventTime": "2025-02-10T19:45:28Z",
    "eventSource": "controltower.amazonaws.com",
    "eventName": "UpdateEnabledBaseline",
    "awsRegion": "us-east-2",
    "sourceIPAddress": "AWS Internal",
    "userAgent": "AWS Internal",
    "requestParameters": null,
    "responseElements": null,
    "eventID": "514f2aff-1a99-4912-bda1-0d4d6662c96e",
    "readOnly": false,
    "eventType": "AwsServiceEvent",
    "managementEvent": true,
    "recipientAccountId": "XXXXXXXXXXXX",
    "serviceEventDetails": {
        "updateEnabledBaselineStatus": {
            "enabledBaselineDetails": {
                "arn": "arn:aws:controltower:us-east-2:XXXXXXXXXXXX:enabledbaseline/XXXXXXXXXXXXXXXX",
                "parentIdentifier": "arn:aws:controltower:us-east-2:XXXXXXXXXXXX:enabledbaseline/XXXXXXXXXXXXXXXX",
                "targetIdentifier": "arn:aws:organizations::XXXXXXXXXXXX:account/o-ern76xmzvf/XXXXXXXXXXXX",
                "baselineIdentifier": "arn:aws:controltower:us-east-2::baseline/XXXXXXXXXXXXXXX",
                "baselineVersion": "4.0",
                "statusSummary": {
                    "lastOperationIdentifier": "ba3de28f-83fb-4c9a-8a8c-a4e15fac2c41",
                    "status": "SUCCEEDED"
                },
                "parameters": [
                    {
                        "key": "IdentityCenterEnabledBaselineArn",
                        "value": {
                            "untyped": {
                                "object": "arn:aws:controltower:us-east-2:XXXXXXXXXXXX:enabledbaseline/XXXXXXXXXXXXXXXX"                            }
                        }
                    }
                ]
            },
            "requestedTimestamp": "2025-02-10T19:39:35+0000",
            "completedTimestamp": "2025-02-10T19:45:28+0000"
        }
    },
    "eventCategory": "Management"
}
```

## `DisableBaseline`
<a name="disable-baseline-lfc"></a>

이 수명 주기 이벤트는 AWS Control Tower가 OU의 대상 멤버 계정에서 활성화된 기존 기준을 성공적으로 비활성화했는지 여부를 기록합니다. 이 이벤트는 AWS Control Tower `DisableBaseline` CloudTrail 이벤트에 해당합니다. 수명 주기 이벤트 로그에는 활성화된 기준과 해당 버전, 기준이 활성화된 `targetIdentifier`, 상위 OU에서 활성화된 기준의 `parentIdentifier`, SUCCEEDED 또는 FAILED 상태를 보여주는 `statusSummary`, 작업의 추가 파라미터 및 타임스탬프가 포함됩니다.

```
{
    "eventVersion": "1.11",
    "userIdentity": {
        "accountId": "XXXXXXXXXXXX",
        "invokedBy": "AWS Internal"
    },
    "eventTime": "2025-03-14T00:50:58Z",
    "eventSource": "controltower.amazonaws.com",
    "eventName": "DisableBaseline",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "AWS Internal",
    "userAgent": "AWS Internal",
    "requestParameters": null,
    "responseElements": null,
    "eventID": "704794c4-a32e-4960-8386-c7efaa5a22a1",
    "readOnly": false,
    "eventType": "AwsServiceEvent",
    "managementEvent": true,
    "recipientAccountId": "XXXXXXXXXXXX",
    "serviceEventDetails": {
        "disableBaselineStatus": {
            "enabledBaselineDetails": {
                "arn": "arn:aws:controltower:us-west-2:XXXXXXXXXXXX:enabledbaseline/XXXXXXXXXXXXXXXX",
                "parentIdentifier": "arn:aws:controltower:us-west-2:XXXXXXXXXXXX:enabledbaseline/XXXXXXXXXXXXXXXX",
                "targetIdentifier": "arn:aws:organizations::XXXXXXXXXXXX:account/o-0uh2kplf6d/XXXXXXXXXXXX",
                "baselineIdentifier": "arn:aws:controltower:us-west-2::baseline/XXXXXXXXXXXXXXX",
                "baselineVersion": "1.0",
                "statusSummary": {
                    "lastOperationIdentifier": "7b895594-0edb-48bc-9f3d-d88c2ad618df",
                    "status": "SUCCEEDED"
                },
                "parameters": []
            },
            "baselineDetails": {
                "arn": "arn:aws:controltower:us-west-2:XXXXXXXXXXXX:enabledbaseline/XXXXXXXXXXXXXXXX",
                "parentIdentifier": "arn:aws:controltower:us-west-2:XXXXXXXXXXXX:enabledbaseline/XXXXXXXXXXXXXXXX",
                "targetIdentifier": "arn:aws:organizations::XXXXXXXXXXXX:account/o-0uh2kplf6d/XXXXXXXXXXXX",
                "baselineIdentifier": "arn:aws:controltower:us-west-2::baseline/XXXXXXXXXXXXXXX",
                "baselineVersion": "1.0",
                "statusSummary": {
                    "lastOperationIdentifier": "7b895594-0edb-48bc-9f3d-d88c2ad618df",
                    "status": "SUCCEEDED"
                },
                "parameters": []
            },
            "requestedTimestamp": "2025-03-14T00:49:13Z",
            "completedTimestamp": "2025-03-14T00:50:58+0000"
        }
    },
    "eventCategory": "Management"
}
```

# 에서AWS사용자 알림 사용AWS Control Tower
<a name="using-user-notifications"></a>

[AWS User Notifications](https://docs.aws.amazon.com/notifications/latest/userguide/what-is.html)를 사용하여AWS Control Tower이벤트에 대한 알림을 받을 전송 채널을 설정할 수 있습니다. 이벤트가 지정한 규칙과 일치하면 알림을 받습니다. 이메일, [채팅 애플리케이션의 Amazon Q Developer](https://docs.aws.amazon.com/chatbot/latest/adminguide/what-is.html) 채팅 알림 또는 [AWS Console 모바일 앱](https://docs.aws.amazon.com/consolemobileapp/latest/userguide/what-is-consolemobileapp.html) 푸시 알림을 비롯한 여러 채널을 통해 이벤트에 대한 알림을 받을 수 있습니다. 콘솔 알림 센터에서도 알림을 볼 수 있습니다.

AWS사용자 알림은 집계를 지원하므로 특정 이벤트 중에 수신하는 알림 수를 줄일 수 있습니다. 알림은 콘솔 알림 센터에서도 볼 수 있습니다.

EventBridge 대신AWS사용자 알림을 통해 알림을 구독하면 다음과 같은 이점이 있습니다.
+ 사용자 인터페이스(UI)가 더 친숙합니다.
+ 글로벌 탐색 모음의 종/알림 영역에 있는AWS콘솔과 통합.
+ 기본적으로 이메일 알림을 지원하므로 Amazon SNS를 설정할 필요가 없습니다.
+ 특히 모바일 푸시 알림에 대한 지원은AWS사용자 알림에만 해당됩니다.

예를 들어, 수신하려는 알림 유형 중 하나는 Security Hub CSPM 중요하고 심각도가 높은 조사 결과의 경우입니다. 해당 알림 구독을 설정하기 위한 JSON의 코드 조각은 다음과 같습니다.

```
{
  "detail": {
    "findings": {
      "Compliance": {
        "Status": ["FAILED", "WARNING", "NOT_AVAILABLE"]
      },
      "RecordState": ["ACTIVE"],
      "Severity": {
        "Label": ["CRITICAL", "HIGH"]
      },
      "Workflow": {
        "Status": ["NEW", "NOTIFIED"]
      }
    }
  }
}
```

**이벤트 필터링**
+ AWS사용자 알림 콘솔에서 사용할 수 있는 필터를 사용하여 서비스 및 이름별로 이벤트를 필터링할 수 있습니다.
+ JSON 코드에서 자체 EventBridge 필터를 생성하는 경우 특정 속성별로 이벤트를 필터링할 수 있습니다.

**예제AWS Control Tower이벤트**

다음은에 대한 일반화된 예제 이벤트입니다AWS Control Tower.
+ EventBridge 이벤트입니다.
+ AWS사용자 알림을 사용하여 EventBridge 이벤트(예: 이벤트)를 구독할 수 있습니다.

```
{
    "version": "0",
    "id": "<id>", // alphanumeric string
    "detail-type": "AWS Service Event via CloudTrail",
    "source": "aws.controltower",
    "account": "<account ID>", // Management account ID. 
    "time": "<date>", // Format: yyyy-MM-dd'T'hh:mm:ssZ 
    "region": "<region>", // AWS Control Tower home region.
    "resources": [],
    "detail": {
        "eventVersion": "1.05",
        "userIdentity": {
            "accountId": "121212121212",
            "invokedBy": "AWS Internal"
        },
        "eventTime": "2018-08-30T21:42:18Z", // Timestamp when call was made. Format: yyyy-MM-dd'T'hh:mm:ssZ.
        "eventSource": "controltower.amazonaws.com",
        "eventName": "<event name>", // one of the 9 event names in https://docs.aws.amazon.com/controltower/latest/userguide/lifecycle-events.html
        "awsRegion": "<region>",
        "sourceIPAddress": "AWS Internal",
        "userAgent": "AWS Internal",
        "eventID": "<id>",
        "readOnly": false,
        "eventType": "AwsServiceEvent",
        "serviceEventDetails": {
            // the contents of this object vary depending on the event subtype and event state
        }
    }
}
```