

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Atualizar uma assinatura existente entre contas
<a name="Cross-Account-Log_Subscription-Update-Account"></a>

Se você atualmente tiver uma assinatura de logs entre contas em que a conta de destino concede permissões apenas para contas de remetente específicas e quiser atualizar essa assinatura para que a conta de destino conceda acesso a todas as contas em uma organização, siga as etapas desta seção.

**Topics**
+ [

# Etapa 1: atualizar os filtros de assinatura
](Cross-Account-Log_Subscription-Update-filter-Account.md)
+ [

# Etapa 2: atualizar a política de acesso ao destino existente
](Cross-Account-Log_Subscription-Update-policy-Account.md)

# Etapa 1: atualizar os filtros de assinatura
<a name="Cross-Account-Log_Subscription-Update-filter-Account"></a>

**nota**  
Essa etapa é necessária apenas para assinaturas entre contas para logs criados pelos serviços listados em [Habilitar o registro a partir de AWS serviços](AWS-logs-and-resource-policy.md). Se você não estiver trabalhando com logs criados por um desses grupos de log, pule para [Etapa 2: atualizar a política de acesso ao destino existente](Cross-Account-Log_Subscription-Update-policy-Account.md).

Em determinados casos, você deve atualizar os filtros de assinatura em todas as contas de remetente que estão enviando logs para a conta de destino. A atualização adiciona uma função do IAM, que CloudWatch pode assumir e validar que a conta do remetente tem permissão para enviar registros para a conta do destinatário.

Siga as etapas desta seção para cada conta de remetente que você deseja atualizar para usar o ID da organização para as permissões de assinatura entre contas.

Nos exemplos desta seção, duas contas, `111111111111` e `222222222222` já têm filtros de assinatura criados para enviar logs para a conta `999999999999`. Os valores de filtro de assinatura existentes são os seguintes:

```
## Existing Subscription Filter parameter values
{
    "DestinationArn": "arn:aws:logs:region:999999999999:destination:testDestination",
    "FilterPattern": "{$.userIdentity.type = Root}",
    "Distribution": "Random"
}
```

Se você precisar encontrar os valores do parâmetro do filtro de assinatura atual, insira o seguinte comando.

```
aws logs describe-account-policies \
--policy-type "SUBSCRIPTION_FILTER_POLICY" \
--policy-name "CrossAccountStreamsExamplePolicy"
```

**Para atualizar um filtro de assinatura para começar a usar a organização IDs para obter permissões de registro entre contas**

1. Crie a seguinte política de confiança em um arquivo `~/TrustPolicyForCWL.json`. Use um editor de texto para criar esse arquivo de política; não use o console do IAM.

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

1. Crie uma função do IAM que use essa política. Observe o valor `Arn` do valor `Arn` que for retornado pelo comando, pois você precisará dele posteriormente nesse procedimento. Neste exemplo, usamos `CWLtoSubscriptionFilterRole` como o nome da função que estamos criando.

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

1. Crie uma política de permissões para definir as ações que o CloudWatch Logs pode realizar na sua conta.

   1. Primeiro, use um editor de texto para criar a seguinte política de permissões em um arquivo chamado `/PermissionsForCWLSubscriptionFilter.json`.

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

   1. Insira o seguinte comando para associar a política de permissões que você acabou de criar à função criada na etapa 2.

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

1. Insira o comando a seguir para atualizar a política de filtro de assinatura.

   ```
   aws logs put-account-policy \
       --policy-name "CrossAccountStreamsExamplePolicy" \
       --policy-type "SUBSCRIPTION_FILTER_POLICY" \
       --policy-document '{"DestinationArn":"arn:aws:logs:region:999999999999:destination:testDestination", "FilterPattern": "{$.userIdentity.type = Root}", "Distribution": "Random"}' \
       --selection-criteria 'LogGroupName NOT IN ["LogGroupToExclude1", "LogGroupToExclude2"]' \
       --scope "ALL"
   ```

# Etapa 2: atualizar a política de acesso ao destino existente
<a name="Cross-Account-Log_Subscription-Update-policy-Account"></a>

Depois de atualizar os filtros de assinatura em todas as contas de remetente, você poderá atualizar a política de acesso de destino na conta do destinatário.

Nos exemplos a seguir, a conta do destinatário é `999999999999` e o destino é chamado de `testDestination`.

A atualização habilita todas as contas que fazem parte da organização com ID de `o-1234567890` a enviar logs à conta destinatária. Somente as contas que tiverem filtros de assinatura criados enviarão logs para a conta do destinatário.

**Atualizar a política de acesso de destino na conta do destinatário para começar a usar um ID de organização para permissões**

1. Na conta destinatária, use um editor de texto para criar um arquivo `~/AccessPolicy.json` com o seguinte conteúdo.

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

****  

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

------

1. Insira o seguinte comando para anexar a política que você acabou de criar ao destino existente. Para atualizar um destino para usar uma política de acesso com uma ID da organização em vez de uma política de acesso que lista uma AWS conta específica IDs, inclua o `force` parâmetro.
**Atenção**  
Se você estiver trabalhando com registros enviados por um AWS serviço listado em[Habilitar o registro a partir de AWS serviços](AWS-logs-and-resource-policy.md), antes de executar essa etapa, você deve primeiro atualizar os filtros de assinatura em todas as contas do remetente, conforme explicado em[Etapa 1: atualizar os filtros de assinatura](Cross-Account-Log_Subscription-Update-filter-Account.md).

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