

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.

# Primeros pasos con AWS IAM Identity Center Amazon EMR
<a name="emr-idc-start"></a>

Esta sección le ayuda a configurar Amazon EMR para que se integre con. AWS IAM Identity Center

**Topics**
+ [

## Creación de una instancia de Identity Center
](#emr-idc-start-instance)
+ [

## Creación de un rol de IAM para Identity Center
](#emr-idc-start-role)
+ [

## Agregue permisos para los servicios que no están integrados con IAM Identity Center
](#emr-idc-start-securityconfig-nonidc)
+ [

## Creación de una configuración de seguridad habilitada por Identity Center
](#emr-idc-start-securityconfig)
+ [

## Creación y lanzamiento de un clúster habilitado por Identity Center
](#emr-idc-cluster)
+ [

# Configuración de Lake Formation para un clúster de EMR habilitado por IAM Identity Center
](emr-idc-lf.md)
+ [

# Cómo trabajar con S3 Access Grants en un clúster de EMR habilitado por IAM Identity Center
](emr-idc-s3ag.md)

**nota**  
Para utilizar la integración de Identity Center con EMR, Lake Formation o Concesiones de acceso a S3 deben estar habilitados. También puede usar ambos. Si ninguna de las dos está habilitada, no se admite la integración de Identity Center.

## Creación de una instancia de Identity Center
<a name="emr-idc-start-instance"></a>

Si aún no tiene una instancia de Identity Center, cree una en la Región de AWS en la que desea lanzar el clúster de EMR. Una instancia de Identity Center solo puede existir en una sola región para una Cuenta de AWS.

Use el siguiente AWS CLI comando para crear una nueva instancia con el nombre`MyInstance`:

```
aws sso-admin create-instance --name MyInstance
```

## Creación de un rol de IAM para Identity Center
<a name="emr-idc-start-role"></a>

Para integrar Amazon EMR con AWS IAM Identity Center, cree un rol de IAM que se autentique con Identity Center desde el clúster de EMR. Amazon EMR también utiliza credenciales SigV4 para transmitir la identidad de Identity Center a servicios posteriores, como AWS Lake Formation. El rol también debe tener los permisos correspondientes para invocar los servicios posteriores.

Al crear el rol, utilice la siguiente política de permisos:

```
{
  "Statement": [
    {
      "Sid": "IdCPermissions",
      "Effect": "Allow",
      "Action": [
        "sso-oauth:*"
      ],
      "Resource": "*"
    },
    {
      "Sid": "GlueandLakePermissions",
      "Effect": "Allow",
      "Action": [
        "glue:*",
        "lakeformation:GetDataAccess"
      ],
      "Resource": "*"
    },
    {
      "Sid": "AccessGrantsPermissions",
      "Effect": "Allow",
      "Action": [
        "s3:GetDataAccess",
        "s3:GetAccessGrantsInstanceForPrefix"
      ],
      "Resource": "*"
    }
  ]
}
```

La política de confianza de este rol permite que el rol InstanceProfile deje asumir el rol.

```
{
    "Sid": "AssumeRole",
    "Effect": "Allow",
    "Principal": {
        "AWS": "arn:aws:iam::12345678912:role/EMR_EC2_DefaultRole"
    },
    "Action": [
        "sts:AssumeRole",
        "sts:SetContext"
    ]
}
```

Si el rol no tiene credenciales de confianza y accede a una tabla protegida por Lake Formation, Amazon EMR establece automáticamente el `principalId` del rol asumido en `userID-untrusted`. El siguiente es un fragmento de un evento que muestra el. CloudTrail `principalId`

```
{
    "eventVersion": "1.09",
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "ABCDEFGH1JKLMNO2PQR3TU:5000-untrusted",
        "arn": "arn:aws:sts::123456789012:assumed-role/EMR_TIP/5000-untrusted",
        "accountId": "123456789012",
        "accessKeyId": "ABCDEFGH1IJKLMNOPQ7R3"
        ...
```

## Agregue permisos para los servicios que no están integrados con IAM Identity Center
<a name="emr-idc-start-securityconfig-nonidc"></a>

AWS credenciales que utilizan Trusted Identity Propagation: las políticas de IAM definidas en la función de IAM para cualquier llamada realizada a servicios que no estén integrados con el IAM Identity Center. Esto incluye, por ejemplo, el. AWS Key Management Service Su rol también debe definir los permisos de IAM para cualquiera de estos servicios a los que intente acceder, por ejemplo, AWS Key Management Service. Los servicios integrados del IAM Identity Center actualmente compatibles incluyen AWS Lake Formation y Concesiones de acceso a Amazon S3.

Para obtener más información sobre la propagación de identidades de confianza, consulte [Trusted Identity Propagation across applications](https://docs.aws.amazon.com/singlesignon/latest/userguide/trustedidentitypropagation.html).

## Creación de una configuración de seguridad habilitada por Identity Center
<a name="emr-idc-start-securityconfig"></a>

Para lanzar un clúster de EMR con la integración de IAM Identity Center, utilice el siguiente comando de ejemplo para crear una configuración de seguridad de Amazon EMR que tenga Identity Center habilitado. A continuación, se explica cada configuración.

```
aws emr create-security-configuration --name "IdentityCenterConfiguration-with-lf-accessgrants" --region "us-west-2" --security-configuration '{
    "AuthenticationConfiguration":{
        "IdentityCenterConfiguration":{
            "EnableIdentityCenter":true,
            "IdentityCenterApplicationAssigmentRequired":false,
            "IdentityCenterInstanceARN": "arn:aws:sso:::instance/ssoins-123xxxxxxxxxx789"
        }
    },
    "AuthorizationConfiguration": {
        "LakeFormationConfiguration": {
            "AuthorizedSessionTagValue": "Amazon EMR"
        },
        "IAMConfiguration": {
          "EnableApplicationScopedIAMRole": true,
          "ApplicationScopedIAMRoleConfiguration": {
            "PropagateSourceIdentity": true
          }
        }
    },
    "EncryptionConfiguration": {
        "EnableInTransitEncryption": true,
        "EnableAtRestEncryption": false,
        "InTransitEncryptionConfiguration": {
            "TLSCertificateConfiguration": {
                "CertificateProviderType": "PEM",
                "S3Object": "s3://amzn-s3-demo-bucket/cert/my-certs.zip"
            }
        }
    }
}'
```
+ **`EnableIdentityCenter`**: (obligatorio) habilita la integración de Identity Center.
+ **`IdentityCenterInstanceARN`**: (obligatorio). El ARN de la instancia del Identity Center. Si no se incluye, se busca el ARN de la instancia del IAM Identity Center existente como parte del paso de configuración.
+ **`IAMRoleForEMRIdentityCenterApplicationARN`**: (obligatorio) el rol de IAM que obtiene los tokens de Identity Center del clúster.
+ **`IdentityCenterApplicationAssignmentRequired `**: (booleano) determina si será necesaria una asignación para utilizar la aplicación de Identity Center. Este campo es opcional. Si no se proporciona un valor, se utiliza el valor predeterminado `false`.
+ **`AuthorizationConfiguration` / `LakeFormationConfiguration`**: si lo desea, configure la autenticación:
  + **`IAMConfiguration`**: habilita la característica de roles de tiempo de ejecución de EMR además de su identidad TIP. Si habilita esta configuración, usted (o el AWS servicio que llama) deberán especificar un rol de tiempo de ejecución de IAM en cada llamada a EMR Steps o EMR. `GetClusterSessionCredentials` APIs Si el clúster de EMR se usa con SageMaker Unified Studio, esta opción es necesaria si la propagación de identidad confiable también está habilitada.
  + **`EnableLakeFormation`**: habilita la autorización de Lake Formation en el clúster.

Para habilitar la integración de Identity Center con Amazon EMR, debe especificar `EncryptionConfiguration` y `IntransitEncryptionConfiguration`.

## Creación y lanzamiento de un clúster habilitado por Identity Center
<a name="emr-idc-cluster"></a>

Ahora que configuró el rol de IAM que se autentica con Identity Center y creó una configuración de seguridad de Amazon EMR que tiene Identity Center habilitado, puede crear y lanzar un clúster con reconocimiento de identidad. Para ver los pasos para lanzar el clúster con la configuración de seguridad requerida, consulte [Especificar una configuración de seguridad para un clúster de Amazon EMR](emr-specify-security-configuration.md).

En las siguientes secciones, se describe cómo configurar el clúster habilitado por Identity Center con las opciones de seguridad compatibles con Amazon EMR:
+ [Cómo trabajar con S3 Access Grants en un clúster de EMR habilitado por IAM Identity Center](emr-idc-s3ag.md)
+ [Configuración de Lake Formation para un clúster de EMR habilitado por IAM Identity Center](emr-idc-lf.md)

# Configuración de Lake Formation para un clúster de EMR habilitado por IAM Identity Center
<a name="emr-idc-lf"></a>

Puede integrarlo [AWS Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/)con su clúster de EMR AWS IAM Identity Center habilitado.

En primer lugar, asegúrese de tener una instancia de Identity Center configurada en la misma región que el clúster. Para obtener más información, consulte [Creación de una instancia de Identity Center](emr-idc-start.md#emr-idc-start-instance). Puede encontrar el ARN de la instancia en la consola de IAM Identity Center en los detalles de la instancia o utilizar el siguiente comando para ver los detalles de todas las instancias desde la CLI:

```
aws sso-admin list-instances
```

A continuación, utilice el ARN y el ID de su AWS cuenta con el siguiente comando para configurar Lake Formation para que sea compatible con IAM Identity Center:

```
aws lakeformation create-lake-formation-identity-center-configuration --cli-input-json file://create-lake-fromation-idc-config.json 
json input:
{
    "CatalogId": "account-id/org-account-id",
    "InstanceArn": "identity-center-instance-arn"
}
```

Ahora, llame a `put-data-lake-settings` y habilite `AllowFullTableExternalDataAccess` con Lake Formation:

```
aws lakeformation put-data-lake-settings --cli-input-json file://put-data-lake-settings.json 
json input:
{
    "DataLakeSettings": {
        "DataLakeAdmins": [
            {
                "DataLakePrincipalIdentifier": "admin-ARN"
            }
        ],
        "CreateDatabaseDefaultPermissions": [...],
        "CreateTableDefaultPermissions": [...],
        "AllowExternalDataFiltering": true,
        "AllowFullTableExternalDataAccess": true
    }
}
```

Por último, conceda permisos de tabla completos al ARN de identidad para el usuario que accede al clúster de EMR. El ARN contiene el ID de usuario de Identity Center. Vaya a Identity Center en la consola, seleccione **Usuarios** y, a continuación, seleccione el usuario para ver su configuración de **Información general**.

Copie el ID de usuario y péguelo en el siguiente ARN para `user-id`:

```
arn:aws:identitystore:::user/user-id
```

**nota**  
Las consultas en el clúster de EMR solo funcionan si la identidad de IAM Identity Center tiene acceso total a la tabla protegida de Lake Formation. Si la identidad no tiene acceso total a la tabla, la consulta fallará.

Utilice el siguiente comando para conceder al usuario acceso total a la tabla:

```
aws lakeformation grant-permissions --cli-input-json file://grantpermissions.json
json input:
{
    "Principal": {
        "DataLakePrincipalIdentifier": "arn:aws:identitystore:::user/user-id"
    },
    "Resource": {
        "Table": {
            "DatabaseName": "tip_db",
            "Name": "tip_table"
        }
    },
    "Permissions": [
        "ALL"
    ],
    "PermissionsWithGrantOption": [
        "ALL"
    ]
}
```

## Cómo agregar el ARN de la aplicación en IDC para la integración con Lake Formation
<a name="emr-idc-enabled-idc"></a>

Para consultar recursos habilitados con Lake Formation, debe agregar el ARN de la aplicación de IDC. Para ello, sigue estos pasos:

1. En la consola, seleccione **AWS Lake Formation**.

1. Elija **Integración con IAM Identity Center** e **Integración de Lake Formation con la aplicación**, y relacione el ARN de la aplicación. El ARN aparecerá en la lista **ID de la aplicación**.

# Cómo trabajar con S3 Access Grants en un clúster de EMR habilitado por IAM Identity Center
<a name="emr-idc-s3ag"></a>

Puede integrar [S3 Access Grants](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-grants.html) con su clúster de EMR AWS IAM Identity Center habilitado.

Utilice S3 Access Grants para autorizar el acceso a los conjuntos de datos desde los clústeres que utilizan Identity Center. Cree concesiones para aumentar los permisos que configura para usuarios, grupos o roles de IAM o para un directorio corporativo. Para obtener más información, consulte [Uso de S3 Access Grants con Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-access-grants.html).

**Topics**
+ [

## Cómo crear una instancia y una ubicación de S3 Access Grants
](#emr-idc-s3ag-instance)
+ [

## Creación de concesiones para las identidades de Identity Center
](#emr-idc-s3ag-identities)

## Cómo crear una instancia y una ubicación de S3 Access Grants
<a name="emr-idc-s3ag-instance"></a>

Si aún no tiene una instancia de S3 Access Grants, cree una en la Región de AWS en la que desea lanzar el clúster de EMR. 

Use el siguiente AWS CLI comando para crear una nueva instancia con el nombre`MyInstance`:

```
aws s3control-access-grants create-access-grants-instance \
--account-id 12345678912 \
--identity-center-arn "identity-center-instance-arn" \
```

A continuación, cree una ubicación de S3 Access Grants y reemplace los valores en color rojo por los suyos:

```
aws s3control-access-grants create-access-grants-location \
--account-id 12345678912 \
--location-scope s3:// \
--iam-role-arn "access-grant-role-arn" \
--region aa-example-1
```

**nota**  
Defina el parámetro `iam-role-arn` como ARN de `accessGrantRole`.

## Creación de concesiones para las identidades de Identity Center
<a name="emr-idc-s3ag-identities"></a>

Por último, cree las concesiones para las identidades que tienen acceso al clúster:

```
aws s3control-access-grants create-access-grant \
--account-id 12345678912 \
--access-grants-location-id "default" \
--access-grants-location-configuration S3SubPrefix="s3-bucket-prefix"
--permission READ \
--grantee GranteeType=DIRECTORY_USER,GranteeIdentifier="your-identity-center-user-id"
```

Ejemplo de salida:

```
{
"CreatedAt": "2023-09-21T23:47:24.870000+00:00",
"AccessGrantId": "1234-12345-1234-1234567",
"AccessGrantArn": "arn:aws:s3:aa-example-1-1:123456789012:access-grants/default/grant/xxxx1234-1234-5678-1234-1234567890",
"Grantee": {
"GranteeType": "DIRECTORY_USER",
"GranteeIdentifier": "5678-56789-5678-567890"
},
"AccessGrantsLocationId": "default",
"AccessGrantsLocationConfiguration": {
"S3SubPrefix": "myprefix/*"
},
"Permission": "READ",
"GrantScope": "s3://myprefix/*"
}
```