

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Actualización de una suscripción entre cuentas existente
<a name="Cross-Account-Log_Subscription-Update-Account"></a>

Si actualmente tiene una suscripción de registros entre cuentas en la que la cuenta de destino concede permisos solo a cuentas de remitentes específicas y desea actualizar esta suscripción para que la cuenta de destino conceda acceso a todas las cuentas de una organización, siga los pasos de esta sección.

**Topics**
+ [Paso 1: actualizar los filtros de suscripción](Cross-Account-Log_Subscription-Update-filter-Account.md)
+ [Paso 2: actualizar la política de acceso de destino existente](Cross-Account-Log_Subscription-Update-policy-Account.md)

# Paso 1: actualizar los filtros de suscripción
<a name="Cross-Account-Log_Subscription-Update-filter-Account"></a>

**nota**  
Este paso solo es necesario para las suscripciones entre cuentas de los registros creados por los servicios enumerados en [Habilitar el registro desde AWS los servicios](AWS-logs-and-resource-policy.md). Si no está trabajando con registros creados por uno de estos grupos de registro, puede ir directo a [Paso 2: actualizar la política de acceso de destino existente](Cross-Account-Log_Subscription-Update-policy-Account.md).

En algunos casos, debe actualizar los filtros de suscripción en todas las cuentas de remitente que envían registros a la cuenta de destino. La actualización añade una función de IAM, que permite CloudWatch asumir y validar que la cuenta del remitente tiene permiso para enviar los registros a la cuenta del destinatario.

Siga los pasos de esta sección para cada cuenta de remitente que desee actualizar para utilizar el ID de organización para los permisos de suscripción entre cuentas.

En los ejemplos de esta sección, dos cuentas, `111111111111` y `222222222222`, ya cuentan con filtros de suscripción creados para enviar registros a la cuenta `999999999999`. Los valores de filtro de suscripción existentes son los siguientes:

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

Si tiene que encontrar los valores de los parámetros de filtro de suscripción actuales, ingrese el siguiente comando.

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

**Para actualizar un filtro de suscripción y empezar a usar la organización IDs para los permisos de registro entre cuentas**

1. Cree la siguiente política de confianza en un archivo `~/TrustPolicyForCWL.json`. Utilice un editor de texto para crear este archivo de política; no utilice la consola de IAM.

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

1. Cree un rol de IAM que utilice la política. Anote el valor `Arn` del valor `Arn` que devuelve el comando, ya que lo necesitará más tarde en este procedimiento. En este ejemplo, usaremos `CWLtoSubscriptionFilterRole` para el nombre del rol que estamos creando.

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

1. Crea una política de permisos para definir las acciones que CloudWatch Logs puede realizar en tu cuenta.

   1. En primer lugar, utilice un editor de texto para crear la siguiente política de permisos en un archivo denominado: `/PermissionsForCWLSubscriptionFilter.json`.

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

   1. Ingrese el siguiente comando para asociar la política de permisos que acaba de crear con el rol que creó en el paso 2.

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

1. Introduzca el siguiente comando para actualizar la política de filtrado de suscripciones.

   ```
   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"
   ```

# Paso 2: actualizar la política de acceso de destino existente
<a name="Cross-Account-Log_Subscription-Update-policy-Account"></a>

Después de actualizar los filtros de suscripción en todas las cuentas de remitente, puede actualizar la política de acceso de destino en la cuenta de destinatario.

En los ejemplos siguientes, la cuenta de destinatario es `999999999999` y el destino se llama `testDestination`.

La actualización permite que todas las cuentas que forman parte de la organización con ID `o-1234567890` envíen registros a la cuenta de destinatario. Solo las cuentas que tienen filtros de suscripción creados enviarán registros a la cuenta del destinatario.

**Para actualizar la política de acceso de destino en la cuenta de destinatario a fin de empezar a utilizar un ID de organización para obtener permisos**

1. En la cuenta del destinatario, utilice un editor de texto para crear un archivo `~/AccessPolicy.json` con el siguiente contenido.

------
#### [ 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. Ingrese el siguiente comando para adjuntar la política que acaba de crear al destino existente. Para actualizar un destino para usar una política de acceso con un identificador de organización en lugar de una política de acceso que muestre una AWS cuenta específica IDs, incluye el `force` parámetro.
**aviso**  
Si está trabajando con registros enviados por uno de los AWS servicios incluidos en la lista[Habilitar el registro desde AWS los servicios](AWS-logs-and-resource-policy.md), antes de realizar este paso, debe haber actualizado los filtros de suscripción de todas las cuentas de remitentes, tal y como se explica en la sección[Paso 1: actualizar los filtros de suscripción](Cross-Account-Log_Subscription-Update-filter-Account.md).

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