

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

# 기존 교차 계정 구독 업데이트
<a name="Cross-Account-Log_Subscription-Update"></a>

현재 대상 계정이 특정 발신자 계정에만 권한을 부여하는 교차 계정 로그 구독이 있고 대상 계정이 조직의 모든 계정에 대한 액세스 권한을 부여하도록 이 구독을 업데이트하려는 경우 이 섹션의 단계를 따릅니다.

**Topics**
+ [1단계: 구독 필터 업데이트](Cross-Account-Log_Subscription-Update-filter.md)
+ [2단계: 기존 대상 액세스 정책 업데이트](Cross-Account-Log_Subscription-Update-policy.md)

# 1단계: 구독 필터 업데이트
<a name="Cross-Account-Log_Subscription-Update-filter"></a>

**참고**  
이 단계는 [AWS 서비스에서 로깅 활성화](AWS-logs-and-resource-policy.md)에 나열된 서비스에서 생성된 로그에 대한 교차 계정 구독에만 필요합니다. 해당 로그 그룹 중 하나에서 생성된 로그로 작업하지 않는 경우 [2단계: 기존 대상 액세스 정책 업데이트](Cross-Account-Log_Subscription-Update-policy.md) 섹션으로 건너뛸 수 있습니다.

경우에 따라 대상 계정으로 로그를 보내는 모든 발신자 계정의 구독 필터를 업데이트해야 합니다. 업데이트에는 IAM 역할이 추가됩니다. IAM 역할은 CloudWatch에서 발신자 계정이 수신자 계정에 로그를 보낼 수 있는 권한이 있는지를 가정하고 검증할 수 있습니다.

교차 계정 구독 권한에 대해 조직 ID를 사용하도록 업데이트하려는 모든 발신자 계정에 대해서는 이 섹션의 단계를 따릅니다.

이 섹션의 예제에서 두 개의 `111111111111` 계정 및 `222222222222` 계정은 `999999999999` 계정에 로그를 전송하기 위해 생성된 구독 필터를 이미 가지고 있습니다. 기존 구독 필터 값은 다음과 같습니다.

```
## Existing Subscription Filter parameter values
    \ --log-group-name "my-log-group-name" 
    \ --filter-name "RecipientStream" 
    \ --filter-pattern "{$.userIdentity.type = Root}" 
    \ --destination-arn "arn:aws:logs:region:999999999999:destination:testDestination"
```

현재 구독 필터 파라미터 값을 찾아야 하는 경우 다음 명령을 입력합니다.

```
aws logs describe-subscription-filters 
    \ --log-group-name "my-log-group-name"
```

**교차 계정 로그 권한에 대한 조직 ID 사용을 시작하도록 구독 필터 업데이트**

1. `~/TrustPolicyForCWL.json` 파일에 다음 트러스트 정책을 생성합니다. 텍스트 편집기를 사용하여 이 정책 파일을 생성하고, IAM 콘솔은 사용하지 마세요.

   ```
   {
     "Statement": {
       "Effect": "Allow",
       "Principal": { "Service": "logs.amazonaws.com" },
       "Action": "sts:AssumeRole"
     }
   }
   ```

1. 이 정책을 사용하는 IAM 역할을 생성합니다. 명령에 의해 반환되는 `Arn` 값의 `Arn` 값은 이 절차의 뒷부분에 필요하므로 메모해 둡니다. 이 예제에서 생성하는 역할의 이름으로는 `CWLtoSubscriptionFilterRole`을 사용합니다.

   ```
   aws iam create-role 
       \ --role-name CWLtoSubscriptionFilterRole 
       \ --assume-role-policy-document file://~/TrustPolicyForCWL.json
   ```

1. CloudWatch Logs가 계정에서 수행할 수 있는 작업을 정의하는 권한 정책을 생성합니다.

   1. 먼저 텍스트 편집기를 사용하여 다음 권한 정책을 이름이 `/PermissionsForCWLSubscriptionFilter.json`인 파일로 생성합니다.

      ```
      { 
          "Statement": [ 
              { 
                  "Effect": "Allow", 
                  "Action": "logs:PutLogEvents", 
                  "Resource": "arn:aws:logs:region:111111111111:log-group:LogGroupOnWhichSubscriptionFilterIsCreated:*" 
              } 
          ] 
      }
      ```

   1. 다음 명령을 입력하여 방금 생성한 권한 정책을 2단계에서 생성한 역할에 연결합니다.

      ```
      aws iam put-role-policy 
          --role-name CWLtoSubscriptionFilterRole 
          --policy-name Permissions-Policy-For-CWL-Subscription-filter 
          --policy-document file://~/PermissionsForCWLSubscriptionFilter.json
      ```

1. 다음 명령을 입력하여 구독 필터를 업데이트합니다.

   ```
   aws logs put-subscription-filter 
       \ --log-group-name "my-log-group-name" 
       \ --filter-name "RecipientStream" 
       \ --filter-pattern "{$.userIdentity.type = Root}" 
       \ --destination-arn "arn:aws:logs:region:999999999999:destination:testDestination"
       \ --role-arn "arn:aws:iam::111111111111:role/CWLtoSubscriptionFilterRole"
   ```

# 2단계: 기존 대상 액세스 정책 업데이트
<a name="Cross-Account-Log_Subscription-Update-policy"></a>

모든 발신자 계정에서 구독 필터를 업데이트한 후, 수신자 계정에서 대상 액세스 정책을 업데이트할 수 있습니다.

다음 예제에서 수신자 계정은 `999999999999`이며 대상의 이름은 `testDestination`입니다.

업데이트를 통해 ID가 `o-1234567890`인 조직의 모든 계정이 수신자 계정으로 로그를 보낼 수 있습니다. 구독 필터가 생성된 계정만이 실제로 수신자 계정에 로그를 보냅니다.

**수신자 계정의 대상 액세스 정책을 업데이트하여 권한에 대한 조직 ID 사용**

1. 수신자 계정에서 텍스트 편집기를 사용하여 다음 내용을 포함한 `~/AccessPolicy.json` 파일을 생성합니다.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "",
               "Effect": "Allow",
               "Principal": "*",
               "Action": "logs:PutSubscriptionFilter",
               "Resource": "arn:aws:logs:us-east-1:999999999999:destination:testDestination",
               "Condition": {
                   "StringEquals": {
                       "aws:PrincipalOrgID": [
                           "o-1234567890"
                       ]
                   }
               }
           }
       ]
   }
   ```

------

1. 다음 명령을 입력하여 방금 생성한 정책을 기존 대상에 연결합니다. 특정 AWS 계정 ID를 나열하는 액세스 정책 대신 조직 IDs로 액세스 정책을 사용하도록 대상을 업데이트하려면 `force` 파라미터를 포함합니다.
**주의**  
에 나열된 AWS 서비스에서 전송한 로그로 작업[AWS 서비스에서 로깅 활성화](AWS-logs-and-resource-policy.md)하는 경우이 단계를 수행하기 전에 먼저에 설명된 대로 모든 발신자 계정의 구독 필터를 업데이트해야 합니다[1단계: 구독 필터 업데이트](Cross-Account-Log_Subscription-Update-filter.md).

   ```
   aws logs put-destination-policy 
       \ --destination-name "testDestination" 
       \ --access-policy file://~/AccessPolicy.json
       \ --force
   ```