

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.

# Configurar la autenticación de la cuenta de servicio para Google Drive
<a name="kb-managed-googledrive-service-account-setup"></a>

La autenticación de la cuenta de servicio (`SERVICE_ACCOUNT`) es el método recomendado para una fuente de datos de Google Drive. Una cuenta de servicio de Google Cloud se autentica con una clave privada y, a continuación, se hace pasar por un usuario administrador de Google Workspace para rastrear el contenido de Drive de cualquier usuario de tu dominio. Este es el único método que admite el control de acceso (ACL) a nivel de documento.

**Se requiere acceso administrativo**  
Esta configuración requiere que un administrador de Google Workspace habilite las API, cree la cuenta de servicio, configure la delegación en todo el dominio y cree un usuario administrador delegado. Esta AWS parte requiere acceso de administrador a AWS Secrets Manager un IAM.

## Paso 1: Crea un proyecto de Google Cloud
<a name="kb-managed-googledrive-sa-step1"></a>

1. Abre la [consola de Google Cloud](https://console.cloud.google.com/).

1. En el selector de proyectos de la parte superior de la página, selecciona **Nuevo proyecto**.

1. Introduce un nombre de proyecto y selecciona **Crear**.

1. Una vez creado el proyecto, cambie a él desde el selector de proyectos.

## Paso 2: Habilita las API necesarias
<a name="kb-managed-googledrive-sa-step2"></a>

1. En el menú de navegación de la consola de Google Cloud, selecciona **API y servicios y**, a continuación, **Biblioteca**.

1. Busca y habilita cada una de las siguientes API:
   + **API de Google Drive**
   + **API de actividad de Google Drive**
   + **API del SDK de administración**

## Paso 3: Crea la cuenta de servicio
<a name="kb-managed-googledrive-sa-step3"></a>

1. En el menú de navegación, selecciona **API y servicios y**, a continuación, **Credenciales**.

1. Seleccione **Crear credenciales** y, a continuación, **Cuenta de servicio**.

1. Introduzca un nombre (por ejemplo`bedrock-google-drive-connector`) y una descripción opcional y, a continuación, seleccione **Listo**.

1. En la página **Credenciales**, elija la cuenta de servicio que acaba de crear.

1. En la pestaña **Detalles**, copia el **identificador único**. Utilízalo en el paso 5 para conceder la delegación en todo el dominio.

## Paso 4: generar una clave privada
<a name="kb-managed-googledrive-sa-step4"></a>

1. En la página de detalles de la cuenta de servicio, selecciona la pestaña **Claves**.

1. Selecciona **Añadir clave** y, a continuación, **Crear nueva clave**.

1. Selecciona **JSON** y elige **Crear**. El navegador descarga un archivo JSON que contiene los datos `client_email` y de la cuenta de servicio`private_key`. Guarde el archivo de forma segura.

**nota**  
Si recibes un error que indica que una política de la organización ha deshabilitado la creación de claves de cuentas de servicio, debes anular la `iam.disableServiceAccountKeyCreation` restricción para tu proyecto. Para obtener más información, consulta [Restringir el uso de las cuentas de servicio](https://cloud.google.com/resource-manager/docs/organization-policy/restricting-service-accounts) en la documentación de Google Cloud.

## Paso 5: Configurar la delegación en todo el dominio
<a name="kb-managed-googledrive-sa-step5"></a>

Domain-wide la delegación permite que la cuenta de servicio actúe en nombre de los usuarios de tu Google Workspace.

1. Inicia sesión en la [consola de administración de Google Workspace](https://admin.google.com/) como administrador de Google Workspace.

1. En el panel de navegación, selecciona **Seguridad**, **acceso y control de datos**, **controles de API**.

1. Seleccione **Administrar la delegación en todo el dominio** y, a continuación, **Agregar nueva**.

1. Para el **ID de cliente**, introduzca el ID único de la cuenta de servicio del paso 3.

1. Para los **ámbitos de OAuth**, introduce los siguientes valores separados por comas:

   ```
   https://www.googleapis.com/auth/drive.readonly,
   https://www.googleapis.com/auth/drive.metadata.readonly,
   https://www.googleapis.com/auth/admin.directory.user.readonly,
   https://www.googleapis.com/auth/admin.directory.group.readonly,
   https://www.googleapis.com/auth/cloud-platform,
   https://www.googleapis.com/auth/forms.body.readonly
   ```

1. Seleccione **Autorizar**.

## Paso 6: Crea un usuario administrador delegado
<a name="kb-managed-googledrive-sa-step6"></a>

La cuenta de servicio se hace pasar por un usuario administrador de Google Workspace al rastrear contenido. Recomendamos crear un usuario administrador dedicado para este fin con las funciones mínimas requeridas.

1. En la consola de administración de Google Workspace, selecciona **Directorio** y, a continuación, **Usuarios**.

1. Selecciona **Añadir nuevo usuario**, introduce un nombre, apellidos y dirección de correo electrónico principal y selecciona **Añadir nuevo usuario**.

1. En la lista de usuarios, abre el usuario que has creado.

1. Amplíe la sección **Funciones y privilegios de administrador** y asigne las siguientes funciones:
   + **Lector de grupos**
   + **Administrador de administración de usuarios**
   + **Administrador de almacenamiento**

1. Seleccione **Save**. Registra la dirección de correo electrónico de este usuario; la guardas en secreto como`adminAccountEmail`.

## Paso 7: Crea el secreto de Secrets Manager
<a name="kb-managed-googledrive-sa-step7"></a>

Guarde las credenciales en un AWS Secrets Manager secreto con los siguientes pares clave-valor. Copia `clientEmail` y `privateKey` del archivo de claves JSON que descargaste en el paso 4 (usa los `private_key` valores `client_email` y).

```
{
    "adminAccountEmail": "{{admin@your-domain.com}}",
    "clientEmail": "{{your-service-account@your-project.iam.gserviceaccount.com}}",
    "privateKey": "{{your-private-key-from-the-json-key-file}}"
}
```

Crea el secreto con AWS Command Line Interface:

```
aws secretsmanager create-secret \
  --name {{bedrock-google-drive-sa-creds}} \
  --secret-string file://secret.json
```

Registre el ARN secreto de la respuesta. Se usa como fuente `secretArn` de datos.

**nota**  
El `privateKey` valor contiene secuencias de `\n` escape literales del archivo de claves JSON. Manténgalas como están cuando copies el valor en el secreto.

## Siguientes pasos
<a name="kb-managed-googledrive-sa-next"></a>

Después de almacenar el secreto, cree la fuente de datos con el valor `authType` establecido en. `SERVICE_ACCOUNT` Consulte [Conectar una fuente de datos de Google Drive](kb-managed-ds-googledrive-connect.md). Para filtrar los resultados de las consultas por permisos de usuario, consulte[Document-level controles de acceso](kb-managed-ds-googledrive-acl.md).