

 Amazon Redshift dejará de admitir la creación de nuevas UDF de Python a partir del parche 198. Las UDF de Python existentes seguirán funcionando hasta el 30 de junio de 2026. Para obtener más información, consulte la [publicación del blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# Uso de roles vinculados a servicios para Amazon Redshift
<a name="using-service-linked-roles"></a>

Amazon Redshift utiliza [roles vinculados a servicios](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role) de AWS Identity and Access Management (IAM). Un rol vinculado a un servicio es un tipo único de rol de IAM que está conectado de forma directa a Amazon Redshift. Los roles vinculados a servicio están predefinidos por Amazon Redshift e incluyen todos los permisos que el servicio requiere para llamar a servicios de AWS en nombre de su clúster de Amazon Redshift. 

Un rol vinculado a un servicio simplifica la configuración de Amazon Redshift porque ya no tendrá que agregar los permisos necesarios de forma manual. El rol está vinculado a los casos de uso de Amazon Redshift y tiene permisos predefinidos. Solo Amazon Redshift puede asumir el rol y solo el rol vinculado a un servicio puede usar la política de permisos predefinida. Amazon Redshift crea un rol vinculado a un servicio en su cuenta la primera vez que crea un clúster o un punto de conexión de VPC administrado por Redshift. Solo puede eliminar el rol vinculado al servicio después de eliminar todos los clústeres de Amazon Redshift o puntos de conexión de VPC administrados por Redshift de su cuenta. De esta forma, se protegen los recursos de Amazon Redshift, ya que evita que se puedan eliminar accidentalmente los permisos necesarios para obtener acceso a los recursos.

Amazon Redshift admite el uso de roles vinculados a servicios en todas las regiones en las que el servicio está disponible. Para obtener más información, consulte [Puntos de conexión y regiones de AWS](https://docs.aws.amazon.com/general/latest/gr/rande.html?id=docs_gateway#redshift_region).

Para obtener información sobre otros servicios que admiten roles vinculados al servicio, consulte [Servicios de AWS que funcionan con IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) y busque los servicios que muestran **Sí** en la columna **Rol vinculado al servicio**. Seleccione una opción **Sí** con un enlace para ver la documentación acerca del rol vinculado al servicio en cuestión.

## Permisos de roles vinculados a servicios para Amazon Redshift
<a name="service-linked-role-permissions"></a>

Amazon Redshift utiliza el rol vinculado al servicio denominado **AWSServiceRoleForRedshift** que permite que Amazon Redshift llame a los servicios de AWS en su nombre. Este rol vinculado a un servicio se adjunta a la siguiente política administrada: `AmazonRedshiftServiceLinkedRolePolicy`. Para obtener actualizaciones de esta política, consulte [Políticas administradas por AWS (predefinidas) para Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-identity-based.html#redshift-policy-resources.managed-policies).

El rol vinculado a un servicio AWSServiceRoleForRedshift solo confía en que **redshift.amazonaws.com** asuma el rol.

La política de permisos del rol vinculado al servicio de AWSServiceRoleForRedshift permite que Amazon Redshift realice las siguientes operaciones en todos los recursos relacionados:
+ `ec2:DescribeVpcs `
+ `ec2:DescribeSubnets `
+ `ec2:DescribeNetworkInterfaces `
+ `ec2:DescribeAddress `
+ `ec2:AssociateAddress `
+ `ec2:DisassociateAddress `
+ `ec2:CreateNetworkInterface `
+ `ec2:DeleteNetworkInterface `
+ `ec2:ModifyNetworkInterfaceAttribute`
+ `ec2:CreateVpcEndpoint`
+ `ec2:DeleteVpcEndpoints`
+ `ec2:DescribeVpcEndpoints`
+ `ec2:ModifyVpcEndpoint`
+ `ec2:DescribeVpcAttribute`
+ `ec2:DescribeSecurityGroups`
+ `ec2:DescribeInternetGateways`
+ `ec2:DescribeSecurityGroupRules`
+ `ec2:DescribeAvailabilityZones`
+ `ec2:DescribeNetworkAcls`
+ `ec2:DescribeRouteTables`
+ `ec2:AssignIpv6Addresses`
+ `ec2:UnassignIpv6Addresses`

**Permisos para recursos de red**

Los siguientes permisos permiten acciones en Amazon EC2 para crear y administrar reglas de grupo de seguridad. Estos grupos y reglas de seguridad están asociados específicamente a la etiqueta de recurso `aws:RequestTag/Redshift` de Amazon Redshift. Esto limita el alcance de los permisos a recursos de Amazon Redshift específicos.
+ `ec2:CreateSecurityGroup`
+ `ec2:AuthorizeSecurityGroupEgress`
+ `ec2:AuthorizeSecurityGroupIngress`
+ `ec2:RevokeSecurityGroupEgress`
+ `ec2:RevokeSecurityGroupIngress`
+ `ec2:ModifySecurityGroupRules`
+ `ec2:DeleteSecurityGroup`

**Permisos para cuotas de servicio**

Los siguientes permisos permiten al intermediario obtener cuotas de servicio.

`servicequotas:GetServiceQuota`

En el siguiente fragmento de código JSON se muestra el ámbito de la acción y del recurso para las cuotas de servicio.

```
{
   "Sid": "ServiceQuotasToCheckCustomerLimits",
   "Effect": "Allow",
   "Action": [
      "servicequotas:GetServiceQuota"
   ],
   "Resource": [
      "arn:aws:servicequotas:*:*:ec2/L-0263D0A3",
      "arn:aws:servicequotas:*:*:vpc/L-29B6F2EB" 
   ]
}
```

Los códigos de cuota son los siguientes:
+ *L-0263D0A3*: código de cuota para las IP elásticas de EC2-VPC.
+ *L-29B6F2EB*: código de cuota para los puntos de conexión de VPC por VPC.

Para más información, consulte [Service Quotas de AWS](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html).

**Acciones para el registro de auditoría**

Las acciones enumeradas con el prefijo `logs` se refieren al registro de auditoría y a las características relacionadas. En concreto, la creación y la administración de grupos de registro y flujos de registro.
+ `logs:CreateLogGroup`
+ `logs:PutRetentionPolicy`
+ `logs:CreateLogStream`
+ `logs:PutLogEvents`
+ `logs:DescribeLogStreams`
+ `logs:GetLogEvents`

El siguiente JSON muestra las acciones y el alcance de los recursos, a Amazon Redshift, para el registro de auditoría.

```
[
    {
        "Sid": "EnableCreationAndManagementOfRedshiftCloudwatchLogGroups",
        "Effect": "Allow",
        "Action": [
            "logs:CreateLogGroup",
            "logs:PutRetentionPolicy"
        ],
        "Resource": [
            "arn:aws:logs:*:*:log-group:/aws/redshift/*"
        ]
    },
    {
        "Sid": "EnableCreationAndManagementOfRedshiftCloudwatchLogStreams",
        "Effect": "Allow",
        "Action": [
            "logs:CreateLogStream",
            "logs:PutLogEvents",
            "logs:DescribeLogStreams",
            "logs:GetLogEvents"
        ],
        "Resource": [
            "arn:aws:logs:*:*:log-group:/aws/redshift/*:log-stream:*"
        ]
    }
]
```

Para obtener más información sobre los roles vinculados a servicios y su finalidad en AWS, consulte [Uso de roles vinculados a servicios](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html). Para obtener más información sobre acciones específicas y otros recursos de IAM para Amazon Redshift, consulte [Acciones, recursos y claves de condición para Amazon Redshift](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonredshift.html).

**Acciones para administrar las credenciales de administrador con AWS Secrets Manager**

Las acciones que aparecen con el prefijo `secretsmanager` están relacionadas con el uso de Amazon Redshift para administrar las credenciales de administrador. Estas acciones permiten que Amazon Redshift use AWS Secrets Manager para crear y administrar los secretos de sus credenciales de administrador. 

El siguiente JSON muestra las acciones y el alcance de los recursos a Amazon Redshift para administrar las credenciales de administrador con AWS Secrets Manager.

```
[
    {
        "Effect": "Allow",
        "Action": [
            "secretsmanager:DescribeSecret",
            "secretsmanager:DeleteSecret",
            "secretsmanager:PutSecretValue",
            "secretsmanager:UpdateSecret",
            "secretsmanager:UpdateSecretVersionStage",
            "secretsmanager:RotateSecret"
        ],
        "Resource": [
            "arn:aws:secretsmanager:*:*:secret:redshift!*"
        ],
        "Condition": {
            "StringEquals": {
                "secretsmanager:ResourceTag/aws:secretsmanager:owningService": "redshift"
            }
        }
    },
    {
        "Effect": "Allow",
        "Action": [
            "secretsmanager:GetRandomPassword"
        ],
        "Resource": "*"
    }
]
```

**Acciones para registrar clústeres y espacios de nombres sin servidor en el AWS Glue Data Catalog**

Las acciones enumeradas con el prefijo `glue` se refieren al acceso a los catálogos del AWS Glue Data Catalog realizados al registrar clústeres aprovisionados o espacios de nombres sin servidor. Para obtener más información, consulte [Compatibilidad de Apache Iceberg con Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/iceberg-integration_overview.html) en la *Guía para desarrolladores de bases de datos de Amazon Redshift*.

El siguiente JSON muestra las acciones y el alcance de los recursos, en Amazon Redshift, para acceder a los catálogos en el AWS Glue Data Catalog: 

```
[
    {
        "Sid": "DiscoverRedshiftCatalogs",
        "Effect": "Allow",
        "Action": [
            "glue:GetCatalogs",
            "glue:GetCatalog"
        ],
        "Resource": [
            "arn:aws:glue:*:*:catalog",
            "arn:aws:glue:*:*:catalog/*"
        ], 
   "Condition": 
    { 
        "Bool": 
        { 
            "glue:EnabledForRedshiftAutoDiscovery": "true"
        },
        "StringEquals": {
             "aws:ResourceAccount": "${aws:PrincipalAccount}"
        }
    } 
 }, 
 {
    "Sid": "LakeFormationGetMetadataAccessForFederatedCatalogs",
    "Effect": "Allow", 
    "Action": [ 
        "lakeformation:GetDataAccess"
    ], 
    "Resource": [ "*" ], 
    "Condition": 
    { 
        "Bool": 
        {
            "lakeformation:EnabledOnlyForMetaDataAccess":"true"
        },
        "StringEquals": {
             "aws:ResourceAccount": "${aws:PrincipalAccount}"
        },
        "ForAnyValue:StringEquals": 
        { 
            "aws:CalledVia": "glue.amazonaws.com"
        } 
    }
 }
    }
]
```

Los permisos `glue:GetCatalog` y `glue:GetCatalogs` tienen la condición `glue:EnabledForRedshiftAutoDiscovery:true`, lo que significa que Amazon Redshift concede acceso a IAM para descubrir catálogos automáticamente. Para excluirse, agregue una política de recursos a nivel de cuenta de AWS Glue para denegar selectivamente el acceso a los catálogos del rol vinculado al servicio. Dado que el rol vinculado al servicio ya tiene una acción de permiso explícita en la política, la política de exclusión debe denegar explícitamente esa acción. Considere el siguiente ejemplo, en el que una política adicional deniega el descubrimiento automático de Amazon Redshift: 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement" : {
            "Effect": "Deny",
            "Action": [
                "glue:GetCatalog",
                "glue:GetCatalogs"
            ],
            "Principal" : {
            "AWS" : "arn:aws:iam::111122223333:role/aws-service-role/redshift.amazonaws.com/AWSServiceRoleForRedshift"
            },
            "Resource": [
                "arn:aws:glue:*:*:catalog/<s3_table_catalog_name>",
                "arn:aws:glue:*:*:catalog/<s3_table_catalog_name>/*"
            ]
        }
}
```

------

**Para permitir a una entidad de IAM crear roles vinculados a servicios AWSServiceRoleForRedshift**

```
{
    "Effect": "Allow",
    "Action": [
        "iam:CreateServiceLinkedRole"      
    ],
    "Resource": "arn:aws:iam::<AWS-account-ID>:role/aws-service-role/redshift.amazonaws.com/AWSServiceRoleForRedshift",
    "Condition": {"StringLike": {"iam:AWSServiceName": "redshift.amazonaws.com"}}
}
```

**Para permitir a una entidad de IAM eliminar roles vinculados a servicios AWSServiceRoleForRedshift**

Agregue la siguiente instrucción de política a los permisos para esa entidad de IAM:

```
{
    "Effect": "Allow",
    "Action": [
        "iam:DeleteServiceLinkedRole",
        "iam:GetServiceLinkedRoleDeletionStatus"
    ],
    "Resource": "arn:aws:iam::<AWS-account-ID>:role/aws-service-role/redshift.amazonaws.com/AWSServiceRoleForRedshift",
    "Condition": {"StringLike": {"iam:AWSServiceName": "redshift.amazonaws.com"}}
}
```

Si lo desea, también puede usar una política administrada por AWS para [proporcionar acceso completo](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AmazonRedshiftFullAccess) a Amazon Redshift.

## Creación de un rol vinculado a un servicio para Amazon Redshift
<a name="create-service-linked-role"></a>

No es necesario crear de forma manual el rol vinculado al servicio AWSServiceRoleForRedshift. Amazon Redshift crea el rol vinculado al servicio por usted. Si el rol vinculado al servicio AWSServiceRoleForRedshift se ha eliminado de la cuenta, Amazon Redshift crea el rol cuando se lanza un nuevo clúster de Amazon Redshift.

**importante**  
Si utilizaba el servicio Amazon Redshift antes del 18 de septiembre de 2017, fecha en que comenzó a admitir los roles vinculados a servicios, entonces Amazon Redshift creó el rol AWSServiceRoleForRedshift en su cuenta. Para obtener más información, consulte [Un nuevo rol ha aparecido en mi cuenta de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_roles.html#troubleshoot_roles_new-role-appeared). 

## Edición de un rol vinculado a un servicio para Amazon Redshift
<a name="edit-service-linked-role"></a>

Amazon Redshift no permite editar el rol vinculado al servicio AWSServiceRoleForRedshift. Después de crear un rol vinculado a un servicio, no puede cambiarle el nombre, ya que varias entidades pueden hacer referencia a él. No obstante, puede editar la descripción del rol con la consola de IAM, la AWS Command Line Interface (AWS CLI) o la API de IAM. Para obtener más información, consulte [Modificación de un rol](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_modify.html) en la *Guía del usuario de IAM*.

## Eliminación de un rol vinculado a un servicio para Amazon Redshift
<a name="delete-service-linked-role"></a>

Si ya no necesita utilizar una característica o servicio que requiere un rol vinculado a un servicio, le recomendamos que elimine dicho rol. De esta forma no tiene una entidad no utilizada que no se monitoree ni mantenga de forma activa. 

Antes de poder eliminar un rol vinculado a un servicio de una cuenta, necesita apagar y eliminar todos los clústeres de la cuenta. Para obtener más información, consulte [Cierre y eliminación de un clúster](rs-mgmt-shutdown-delete-cluster.md).

Puede utilizar la consola de IAM, la AWS CLI o la API de IAM para eliminar un rol vinculado a un servicio. Para obtener más información, consulte [Eliminación de un rol vinculado a un servicio](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role) en la *Guía del usuario de IAM*.