Etiquetado de recursos de Amazon RDS - Amazon Relational Database Service

Etiquetado de recursos de Amazon RDS

Puede utilizar etiquetas de Amazon RDS para agregar metadatos a los recursos de Amazon RDS. Puede utilizar las etiquetas para agregar sus propias notaciones sobre instancias de base de datos, instantáneas, Aurora clústeres, etc. Si lo hace, puede ayudarle a documentar los Amazon RDS recursos. También puede utilizar las etiquetas con procedimientos de mantenimiento automatizados.

En particular, puede utilizar estas etiquetas con políticas de IAM para administrar el acceso a Amazon RDS los recursos y controlar qué acciones se pueden aplicar a Amazon RDS ellos. También puede utilizar estas etiquetas para realizar un seguimiento de los costos al agrupar los gastos de recursos etiquetados de forma similar.

Puede etiquetar los siguientes Amazon RDS recursos:

  • Instancias de base de datos

  • Clústeres de base de datos

  • Réplicas de lectura

  • Instantáneas de base de datos

  • Instantáneas de clúster de base de datos

  • Instancias de base de datos reservadas

  • Suscripciones de eventos

  • Grupos de opciones de base de datos

  • Grupos de parámetros de base de datos

  • Grupos de parámetros de clúster de base de datos

  • Grupos de seguridad de base de datos

  • Grupos de subred de base de datos

  • Proxies de RDS Proxy

  • Puntos de enlace de RDS Proxy

nota

Actualmente, no puede etiquetar los proxies de RDS ni los puntos de conexión de proxies de RDS mediante la AWS Management Console.

Información general de las etiquetas de recursos de Amazon RDS

Las etiquetas de Amazon RDS son pares nombre-valor que el usuario define y asocia a un recurso de Amazon RDS. El nombre es la clave. Si lo desea puede proporcionar un valor para la clave o no. También puede usar etiquetas para asignar información arbitraria a un recurso de Amazon RDS. Puede usar claves de etiqueta, por ejemplo, para definir una categoría, y el valor de la etiqueta puede ser un elemento dentro de esa categoría. Por ejemplo, puede definir una clave de etiqueta "proyecto" y un valor de etiqueta "Salix" para indicar que el recurso de Amazon RDS va asignado al proyecto Salix. Asimismo, puede utilizar etiquetas para designar recursos de Amazon RDS para pruebas o para producción mediante una clave como environment=test o environment=production. Se recomienda utilizar un conjunto coherente de claves de etiqueta que facilite el seguimiento de los metadatos asociados a los recursos de Amazon RDS.

Además, puede utilizar las condiciones de sus políticas de IAM para controlar el acceso a los recursos de AWS en función de las etiquetas de ese recurso. Para ello, utilice la clave de condición aws:ResourceTag/tag-key global. Para obtener más información, consulte Control del acceso a recursos de AWS en la Guía del usuario de AWS Identity and Access Management.

Cada recurso de Amazon RDS tiene un conjunto de etiquetas con todas las etiquetas asignadas a ese recurso de Amazon RDS. Un conjunto de etiquetas puede contener hasta 50 etiquetas, y también puede estar vacío. Si agrega una etiqueta a un recurso de Amazon RDS con la misma clave que una etiqueta existente en el recurso, el nuevo valor sobrescribirá al antiguo.

AWS no aplica ningún significado semántico a las etiquetas, que se interpretan estrictamente como cadenas de caracteres. Amazon RDS puede definir etiquetas en una instancia de base de datos u otros recursos de Amazon RDS, según la configuración utilizada al crear el recurso. Por ejemplo, Amazon RDS podría agregar una etiqueta en la que se indica que una instancia de base de datos es para producción o para la realización de pruebas.

  • La clave de la etiqueta es el nombre obligatorio de la etiqueta. El valor de la cadena puede tener una longitud de entre 1 y 128 caracteres Unicode y no puede llevar el prefijo aws: ni rds:. La cadena puede contener únicamente el conjunto de letras, dígitos y espacio en blanco, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-]*)$").

  • El valor de etiqueta es un valor de cadena optativo en la etiqueta. El valor de la cadena puede tener una longitud de entre 1 y 256 caracteres Unicode y no puede llevar el prefijo aws:. La cadena puede contener únicamente el conjunto de letras, dígitos y espacio en blanco, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-]*)$").

    Los valores no deben ser únicos dentro de un conjunto de etiquetas y también pueden ser nulos. Por ejemplo, es posible tener en un conjunto de etiquetas los pares clave-valor project=Trinity y cost-center=Trinity.

Puede utilizar la AWS Management Console, la interfaz de línea de comandos o la API de Amazon RDS para agregar, enumerar y eliminar etiquetas de recursos de Amazon RDS. Si utiliza la interfaz de línea de comandos o la API de Amazon RDS, deberá proporcionar el nombre de recurso de Amazon (ARN) correspondiente al recurso de Amazon RDS con el que desee trabajar. Para obtener más información sobre cómo crear un ARN, consulte Creación de un nombre ARN para Amazon RDS.

Las etiquetas se almacenan en caché con fines de autorización. Por este motivo, cuando se actualizan o se agregan valores a las etiquetas de recursos de Amazon RDS, pueden tardar varios minutos en estar disponibles.

Uso de etiquetas para el control de acceso con IAM

Puede utilizar etiquetas con políticas de IAM para administrar el acceso a Amazon RDS los recursos y controlar qué acciones se pueden aplicar a los Amazon RDS recursos.

Para obtener más información sobre la administración del acceso a recursos etiquetados con políticas de IAM, consulte Identity and access management en Amazon RDS.

Uso de etiquetas para producir informes de facturación detallados

También puede utilizar etiquetas para hacer un seguimiento de los costos, agrupando los gastos correspondientes en recursos con etiquetas similares.

Puede usar etiquetas para organizar la factura de AWS de modo que refleje su propia estructura de costos. Para ello, inscríbase para obtener una factura de Cuenta de AWS que incluya valores de clave de etiquetas. A continuación, para ver los costos de los recursos combinados, organice la información de facturación de acuerdo con los recursos con los mismos valores de clave de etiquetas. Por ejemplo, puede etiquetar varios recursos con un nombre de aplicación específico y luego organizar su información de facturación para ver el costo total de la aplicación en distintos servicios. Para obtener más información, consulte Uso de etiquetas de asignación de costos en la Guía del usuario de AWS Billing.

nota

Puede añadir una etiqueta a una instantánea, pero la factura no reflejará esta agrupación.

Agregar, publicar y eliminar etiquetas

Los procedimientos siguientes muestran cómo realizar operaciones de etiquetado típicas en recursos relacionados con instancias de base de datos y .

El proceso para etiquetar un recurso de Amazon RDS es similar para todos los recursos. El siguiente procedimiento muestra cómo etiquetar una instancia de base de datos de Amazon RDS.

Para agregar una etiqueta a una instancia de base de datos

  1. Inicie sesión en la AWS Management Console y abra la consola de Amazon RDS en https://console.aws.amazon.com/rds/.

  2. En el panel de navegación, seleccione Databases (Bases de datos).

    nota

    Para filtrar la lista de instancias de base de datos en el panel Databases (Bases de datos), escriba una cadena de texto para Filter databases (Filtrar bases de datos). Solo aparecen instancias de base de datos que contienen la cadena.

  3. Seleccione el nombre de la instancia de base de datos que desea etiquetar para mostrar sus detalles.

  4. En la sección de detalles, desplácese hasta la sección Tags (Etiquetas).

  5. Elija Add (Añadir). Aparece la ventana Add tags (Añadir etiquetas).

    
            Ventana para añadir etiquetas
  6. Escriba un valor para Tag key (Clave de etiqueta) y Value (Valor).

  7. Para añadir otra etiqueta, puede elegir Add another Tag (Añadir otra etiqueta) y escribir un valor para Tag key (Clave de etiqueta) y Value (Valor).

    Repita este paso tantas veces como sea necesario.

  8. Elija Add (Añadir).

Para eliminar una etiqueta de una instancia de base de datos

  1. Inicie sesión en la AWS Management Console y abra la consola de Amazon RDS en https://console.aws.amazon.com/rds/.

  2. En el panel de navegación, seleccione Databases (Bases de datos).

    nota

    Para filtrar la lista de instancias de base de datos en el panel Databases (Bases de datos), escriba una cadena de texto en el cuadro Filter databases (Filtrar bases de datos). Solo aparecen instancias de base de datos que contienen la cadena.

  3. Seleccione el nombre de la instancia de base de datos para mostrar sus detalles.

  4. En la sección de detalles, desplácese hasta la sección Tags (Etiquetas).

  5. Elija la etiqueta desea eliminar.

    
          Sección de etiquetas
  6. Elija Delete (Eliminar) y después elija (Eliminar) en la ventana Delete tags (Eliminar etiquetas).

Puede utilizar la para agregar, listar o eliminar etiquetas de una instancia de base de dato AWS CLI.

  • Para agregar una o más etiquetas a un recurso de Amazon RDS, utilice el comando add-tags-to-resource de la AWS CLI.

  • Para ver una lista de las etiquetas de un recurso de Amazon RDS, utilice el comando list-tags-for-resource de la AWS CLI.

  • Para eliminar una o más etiquetas de un recurso de Amazon RDS, utilice el comando remove-tags-from-resource de la AWS CLI.

Para obtener más información acerca de cómo crear el ARN requerido, consulte Creación de un nombre ARN para Amazon RDS.

Puede utilizar la API de Amazon RDS para agregar, listar o eliminar etiquetas de una instancia de base de datos.

  • Para añadir una etiqueta a un recurso de Amazon RDS, utilice la operación AddTagsToResource.

  • Para ver una lista de las etiquetas asignadas a un recurso de Amazon RDS, utilice ListTagsForResource.

  • Para eliminar etiquetas de un recurso de Amazon RDS, utilice la operación RemoveTagsFromResource.

Para obtener más información acerca de cómo crear el ARN requerido, consulte Creación de un nombre ARN para Amazon RDS.

Cuando se trabaja con XML mediante la API de Amazon RDS, las etiquetas utilizan el esquema siguiente:

<Tagging> <TagSet> <Tag> <Key>Project</Key> <Value>Trinity</Value> </Tag> <Tag> <Key>User</Key> <Value>Jones</Value> </Tag> </TagSet> </Tagging>

La tabla siguiente proporciona una lista de las etiquetas XML permitidas y sus características. Los valores de clave y de valor distinguen entre mayúsculas y minúsculas. Por ejemplo, proyecto=Trinity y PROYECTO=Trinity son dos etiquetas diferentes.

Elemento de etiquetado Descripción
TagSet Los conjuntos de etiquetas contienen todas las etiquetas asignadas a un recurso de Amazon RDS. Solo puede haber un conjunto de etiquetas por recurso. Solo puede trabajar con conjuntos de etiquetas a través de la API de Amazon RDS.
Tag Las etiquetas son pares clave-valor que define el usuario. En un conjunto de etiquetas puede haber entre 1 y 50 etiquetas.
Key

La clave es el nombre obligatorio de la etiqueta. El valor de la cadena puede tener una longitud de entre 1 y 128 caracteres Unicode y no puede llevar el prefijo aws: ni rds:. La cadena solo puede contener el conjunto de letras, dígitos y espacio en blanco Unicode, '_', '.', '/', '=', '+', '-' (Java regex: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-]*)$").

Las claves deben ser únicas dentro de un conjunto de etiquetas. Por ejemplo, en un conjunto de etiquetas no puede haber claves iguales pero con valores diferentes, como proyecto/Trinity y proyecto/Xanadu.

Valor

El valor es la parte opcional de la etiqueta. El valor de la cadena puede tener una longitud de entre 1 y 256 caracteres Unicode y no puede llevar el prefijo aws: ni rds:. La cadena solo puede contener el conjunto de letras, dígitos y espacio en blanco Unicode, '_', '.', '/', '=', '+', '-' (Java regex: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-]*)$").

Los valores no deben ser únicos dentro de un conjunto de etiquetas y también pueden ser nulos. Por ejemplo, puede tener un par clave-valor en un conjunto de etiquetas en proyecto/Trinity y centro-de-costos/Trinity.

Uso del editor de etiquetas de AWS

Puede examinar y editar las etiquetas de los recursos RDS en el AWS Management Console mediante el editor de etiquetas de AWS. Para obtener más información, consulte el Editor de etiquetas en la Guía del usuario de grupos de recursos de AWS.

Copia de etiquetas a instantáneas de instancia de base de datos

Cuando crea o restaura una instancia de base de datos, puede especificar que las etiquetas de dicha instancia se copien en instantáneas de la instancia de base de datos. La copia de las etiquetas garantiza que los metadatos para las instantáneas de base de datos coincidan con los de la instancia de base de datos de origen y que cualquier política de acceso para las instantáneas de base de datos también coincida con la de la instancia de base de datos de origen.

Puede especificar que las etiquetas se copien en las instantáneas de base de datos para las siguientes acciones:

  • Creación de una instancia de base de datos.

  • Restauración de una instancia de base de datos.

  • Creación de una réplica de lectura.

  • Copia de una instantánea de base de datos.

En la mayoría de los casos, las etiquetas no se copian de forma predeterminada. Sin embargo, al restaurar una instancia de base de datos desde una instantánea de base de datos, RDS verifica si se especifican nuevas etiquetas. En caso afirmativo, las nuevas etiquetas se agregan a la instancia de base de datos restaurada. Si no hay etiquetas nuevas, RDS busca las etiquetas de la instancia de base de datos de origen para la instantánea de base de datos y, a continuación, las agrega a la instancia de base de datos restaurada.

Para evitar que se agreguen etiquetas desde instancias de base de datos de origen a instancias de base de datos restauradas, le recomendamos que especifique nuevas etiquetas al restaurar una instancia de base de datos.

nota

Si incluye un valor para el parámetro --tag-key del comando create-db-snapshot de la AWS CLI (o proporciona al menos una etiqueta a la operación CreateDBSnapshot de la API), RDS no copia las etiquetas de la instancia de base de datos de origen en la nueva instantánea de base de datos. Esta funcionalidad se aplica incluso si la instancia de base de datos de origen tiene la opción --copy-tags-to-snapshot (CopyTagsToSnapshot) habilitada. Si adopta este enfoque, puede crear una copia de una instancia de base de datos a partir de una instantánea de base de datos y evitar tener que agregar etiquetas que no se aplican a la instancia de base de datos nueva. Después de crear su instantánea de base de datos mediante el comando de la AWS CLI create-db-snapshot (o la operación CreateDBSnapshot de la API de Amazon RDS), puede agregar etiquetas como se describe más adelante en este tema.

Tutorial: Uso de etiquetas para especificar qué instancias de base de datos se deben detener

Supongamos que crea una serie de instancias de base de datos en un entorno de desarrollo o prueba. Debe mantener todas estas instancias de base de datos durante varios días. Algunas de las instancias de base de datos ejecutan pruebas durante la noche. Otras instancias de base de datos se pueden detener durante la noche y volver a iniciarse al día siguiente. En el ejemplo siguiente se muestra cómo asignar una etiqueta a aquellas instancias de base de datos adecuadas para detenerse durante la noche. A continuación, el ejemplo muestra cómo un script puede detectar qué instancias de base de datos tienen esa etiqueta y, entonces, detener esas instancias de base de datos. En este ejemplo, la parte del valor del par clave-valor no importa. La presencia de la stoppable etiqueta significa que la instancia de base de datos tiene esta propiedad definida por el usuario.

Para especificar qué instancias de base de datos se deben detener

  1. Determine el ARN de una instancia de base de datos que queremos designar como detenible.

    Los comandos y las API para etiquetar funcionan con los ARN. De esta forma, pueden funcionar sin problemas en regiones de AWS, cuentas de AWS y diferentes tipos de recursos que pueden tener nombres cortos idénticos. Puede especificar el ARN en lugar del ID de instancia de base de datos en los comandos CLI que operan en instancias de base de datos. Sustituya el nombre de las propias instancias de base de datos por dev-test-db-instance. En comandos posteriores que utilicen parámetros ARN, sustituya el ARN de la propia instancia de base de datos. El ARN incluye el propio ID de cuenta de AWS y el nombre de la región de AWS donde se encuentra la instancia de base de datos.

    $ aws rds describe-db-instances --db-instance-identifier dev-test-db-instance \ --query "*[].{DBInstance:DBInstanceArn}" --output text arn:aws:rds:us-east-1:123456789102:db:dev-test-db-instance
  2. Agregue la etiqueta stoppable a esta instancia de base de datos.

    Usted elige el nombre de esta etiqueta. El uso de una etiqueta como esta es una alternativa para idear una convención de nomenclatura que codifica toda la información relevante en el nombre de la instancia de base de datos (u otros tipos de recursos). Dado que en este ejemplo se trata la etiqueta como un atributo presente o ausente, se omite la Value= parte del --tags parámetro.

    $ aws rds add-tags-to-resource \ --resource-name arn:aws:rds:us-east-1:123456789102:db:dev-test-db-instance \ --tags Key=stoppable
  3. Confirme que la etiqueta está presente en la instancia de base de datos.

    Estos comandos recuperan la información de etiqueta para la instancia de base de datos en formato JSON y en texto plano separado por tabulaciones.

    $ aws rds list-tags-for-resource \ --resource-name arn:aws:rds:us-east-1:123456789102:db:dev-test-db-instance { "TagList": [ { "Key": "stoppable", "Value": "" } ] } aws rds list-tags-for-resource \ --resource-name arn:aws:rds:us-east-1:123456789102:db:dev-test-db-instance --output text TAGLIST stoppable
  4. Para detener todas las instancias de base de datos designadas como stoppable, prepare una lista de todas las instancias de base de datos. Recorra la lista y compruebe si cada instancia de base de datos está etiquetada con el atributo correspondiente.

    Este ejemplo de Linux utiliza scripting shell con el objetivo de guardar la lista de las ARN de instancia de base de datos en un archivo temporal y, a continuación, ejecutar comandos CLI para cada instancia de base de datos.

    $ aws rds describe-db-instances --query "*[].[DBInstanceArn]" --output text >/tmp/db_instance_arns.lst $ for arn in $(cat /tmp/db_instance_arns.lst) do match="$(aws rds list-tags-for-resource --resource-name $arn --output text | grep stoppable)" if [[ ! -z "$match" ]] then echo "DB instance $arn is tagged as stoppable. Stopping it now." # Note that you need to get the DB instance identifier from the ARN. dbid=$(echo $arn | sed -e 's/.*://') aws rds stop-db-instance --db-instance-identifier $dbid fi done DB instance arn:arn:aws:rds:us-east-1:123456789102:db:dev-test-db-instance is tagged as stoppable. Stopping it now. { "DBInstance": { "DBInstanceIdentifier": "dev-test-db-instance", "DBInstanceClass": "db.t3.medium", ...

Puede ejecutar un script como este al final de cada día para asegurarse de que las instancias de base de datos no esenciales se detienen. También puede programar un trabajo al usar una utilidad como cron para realizar dicha comprobación cada noche, en caso de que algunas instancias de base de datos siguieran en ejecución por error. En ese caso, puede ajustar el comando que prepara la lista de instancias de base de datos para comprobar. El siguiente comando produce una lista de las instancias de base de datos, pero sólo las que están en available estado. El script puede ignorar las instancias de base de datos que ya están detenidas, porque tendrán valores de estado diferentes, como stopped o stopping.

$ aws rds describe-db-instances \ --query '*[].{DBInstanceArn:DBInstanceArn,DBInstanceStatus:DBInstanceStatus}|[?DBInstanceStatus == `available`]|[].{DBInstanceArn:DBInstanceArn}' \ --output text arn:aws:rds:us-east-1:123456789102:db:db-instance-2447 arn:aws:rds:us-east-1:123456789102:db:db-instance-3395 arn:aws:rds:us-east-1:123456789102:db:dev-test-db-instance arn:aws:rds:us-east-1:123456789102:db:pg2-db-instance
sugerencia

Una vez que esté familiarizado con el procedimiento general de asignación de etiquetas y búsqueda de instancias de base de datos que tengan esas etiquetas, puede utilizar la misma técnica para reducir costos de otras maneras. Por ejemplo, en este escenario con instancias de base de datos utilizadas para el desarrollo y la prueba, puede designar algunas instancias de base de datos que se eliminarán al final de cada día o para que las instancias de base de datos cambien a una pequeña clase de instancia de base de datos durante momentos de bajo uso esperado.

Uso de etiquetas para habilitar copias de seguridad en AWS Backup

AWS Backup es un servicio de copia de seguridad completamente administrado que facilita la centralización y automatización de las copias de seguridad de datos en servicios de AWS en la nube y en las instalaciones. Puede administrar copias de seguridad de las instancias de base de datos de Amazon RDS en AWS Backup.

Para habilitar las copias de seguridad en AWS Backup, utilice el etiquetado de recursos para asociar la instancia de base de datos con un plan de copia de seguridad.

En este ejemplo se supone que ya ha creado un plan de copia de seguridad en AWS Backup. Utilice exactamente la misma etiqueta para la instancia de base de datos que está en el plan de copia de seguridad, como se muestra en la siguiente figura.

Para obtener más información sobre AWS Backup, consulte la Guía para desarrolladores de AWS Backup.

Puede asignar una etiqueta a una instancia de base de datos mediante AWS Management Console, la AWS CLI, o la API de RDS. Los siguientes ejemplos son para la consola y la CLI.

Asignar una etiqueta a una instancia de base de datos

  1. Inicie sesión en la AWS Management Console y abra la consola de Amazon RDS en https://console.aws.amazon.com/rds/.

  2. En el panel de navegación, seleccione Databases (Bases de datos).

  3. Elija el enlace de la instancia de base de datos a la que desea asignar una etiqueta.

  4. En la página de detalles de la base de datos, elija la pestaña Tags (Etiquetas) .

  5. En Tags (Etiquetas), elija Add tags (Agregar etiquetas).

  6. En Add tags (Agregar etiquetas):

    1. En Tag key (Clave de etiqueta), escriba BackupPlan.

    2. En Value (Valor), escriba Test.

    3. Elija Add (Añadir).

El resultado se muestra en Tags (Etiquetas).

Asignar una etiqueta a una instancia de base de datos

  • Para ello, utilice el siguiente comando de la CLI:

    Para Linux, macOS o Unix:

    aws rds add-tags-to-resource \ --resource-name arn:aws:rds:us-east-1:123456789012:db:new-orcl-db \ --tags Key=BackupPlan,Value=Test

    Para Windows:

    aws rds add-tags-to-resource ^ --resource-name arn:aws:rds:us-east-1:123456789012:db:new-orcl-db ^ --tags Key=BackupPlan,Value=Test

El comando add-tags-to-resource CLI no devuelve ningún resultado.

Confirmar que la instancia de base de datos está etiquetada

  • Para ello, utilice el siguiente comando de la CLI:

    Para Linux, macOS o Unix:

    aws rds list-tags-for-resource \ --resource-name arn:aws:rds:us-east-1:123456789012:db:new-orcl-db

    Para Windows:

    aws rds list-tags-for-resource ^ --resource-name arn:aws:rds:us-east-1:123456789012:db:new-orcl-db

El comando list-tags-for-resource CLI devuelve el siguiente resultado:

{ "TagList": [ { "Key": "BackupPlan", "Value": "Test" } ] }