Control de acceso detallado mediante nombres de recursos y etiquetas - AWS Database Migration Service

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.

Control de acceso detallado mediante nombres de recursos y etiquetas

Puede utilizar nombres de recursos y etiquetas de recursos basados en nombres de recursos de Amazon (ARN) para gestionar el acceso a recursos de AWS DMS. Para ello, define la acción permitida o incluye declaraciones condicionales en las políticas de IAM.

Uso de nombres de recursos para controlar el acceso

Puede crear una cuenta de usuario de IAM y asignar una política basada en el ARN del recurso de AWS DMS.

La siguiente política deniega el acceso a la instancia de replicación AWS DMS con el ARN arn:aws:dms:us-east-1:152683116:rep:DOH67ZTOXGLIXMIHKITV:

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "dms:*" ], "Effect": "Deny", "Resource": "arn:aws:dms:us-east-1:152683116:rep:DOH67ZTOXGLIXMIHKITV" } ] }

Por ejemplo, los siguientes comandos fallan cuando la política está en vigor.

$ aws dms delete-replication-instance --replication-instance-arn "arn:aws:dms:us-east-1:152683116:rep:DOH67ZTOXGLIXMIHKITV" A client error (AccessDeniedException) occurred when calling the DeleteReplicationInstance operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: dms:DeleteReplicationInstance on resource: arn:aws:dms:us-east-1:152683116:rep:DOH67ZTOXGLIXMIHKITV $ aws dms modify-replication-instance --replication-instance-arn "arn:aws:dms:us-east-1:152683116:rep:DOH67ZTOXGLIXMIHKITV" A client error (AccessDeniedException) occurred when calling the ModifyReplicationInstance operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: dms:ModifyReplicationInstance on resource: arn:aws:dms:us-east-1:152683116:rep:DOH67ZTOXGLIXMIHKITV

También puede especificar políticas de IAM que limiten el acceso a los puntos de enlace de AWS DMS y las tareas de replicación.

La siguiente política limita el acceso a puntos de enlace de AWS DMS utilizando el ARN del punto de enlace.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "dms:*" ], "Effect": "Deny", "Resource": "arn:aws:dms:us-east-1:152683116:endpoint:D6E37YBXTNHOA6XRQSZCUGX" } ] }

Por ejemplo, los siguientes comandos fallan cuando la política que utiliza el ARN del punto de enlace está en vigor:

$ aws dms delete-endpoint --endpoint-arn "arn:aws:dms:us-east-1:152683116:endpoint:D6E37YBXTNHOA6XRQSZCUGX" A client error (AccessDeniedException) occurred when calling the DeleteEndpoint operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: dms:DeleteEndpoint on resource: arn:aws:dms:us-east-1:152683116:endpoint:D6E37YBXTNHOA6XRQSZCUGX $ aws dms modify-endpoint --endpoint-arn "arn:aws:dms:us-east-1:152683116:endpoint:D6E37YBXTNHOA6XRQSZCUGX" A client error (AccessDeniedException) occurred when calling the ModifyEndpoint operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: dms:ModifyEndpoint on resource: arn:aws:dms:us-east-1:152683116:endpoint:D6E37YBXTNHOA6XRQSZCUGX

La siguiente política limita el acceso a una tarea de AWS DMS utilizando el ARN de la tarea.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "dms:*" ], "Effect": "Deny", "Resource": "arn:aws:dms:us-east-1:152683116:task:UO3YR4N47DXH3ATT4YMWOIT" } ] }

Por ejemplo, los siguientes comandos fallan cuando la política que utiliza el ARN de la tarea está en vigor:

$ aws dms delete-replication-task --replication-task-arn "arn:aws:dms:us-east-1:152683116:task:UO3YR4N47DXH3ATT4YMWOIT" A client error (AccessDeniedException) occurred when calling the DeleteReplicationTask operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: dms:DeleteReplicationTask on resource: arn:aws:dms:us-east-1:152683116:task:UO3YR4N47DXH3ATT4YMWOIT

Uso de etiquetas para controlar el acceso

AWS DMS define un conjunto de pares clave/valor comunes que están disponibles para su uso en las políticas definidas por el cliente sin necesidad de requisitos de etiquetado adicionales. Para obtener más información acerca del etiquetado de recursos de AWS DMS, consulte Etiquetado de recursos en AWS Database Migration Service.

A continuación se enumeran las etiquetas estándar disponibles para su uso con AWS DMS:

  • aws:CurrentTime: representa la fecha y la hora de la solicitud, lo que permite la restricción del acceso en función de criterios temporales.

  • aws:EpochTime: esta etiqueta es similar a la etiqueta aws:CurrentTime anterior, salvo que la hora actual se representa como el número de segundos transcurridos desde la fecha de inicio de Unix.

  • aws:MultiFactorAuthPresent: se trata de una etiqueta booleana que indica si la solicitud se firmó o no mediante la autenticación multifactor.

  • aws:MultiFactorAuthAge: proporciona acceso a la antigüedad del token de autenticación multifactor (en segundos).

  • aws:principaltype: proporciona acceso al tipo de entidad principal (usuario, cuenta, usuario federado, etc.) para la solicitud actual.

  • aws:SourceIp: representa la dirección IP de origen para el usuario que emite la solicitud.

  • aws:UserAgent: ofrece información acerca de la aplicación cliente que solicita un recurso.

  • aws:userid: proporciona acceso al ID del usuario que emite la solicitud.

  • aws:username: proporciona acceso al nombre del usuario que emite la solicitud.

  • dms:InstanceClass: proporciona acceso al tamaño del cómputo de los host de la instancia de replicación.

  • dms:StorageSize: proporciona acceso al tamaño del volumen de almacenamiento (en GB).

También puede definir sus propias etiquetas. Las etiquetas definidas por el cliente son pares sencillos de clave-valor que se conservan en el servicio de etiquetado de AWS. Puede añadirlos a recursos de AWS DMS, incluidas las instancias de replicación, los puntos de enlace y las tareas. Estas etiquetas se asocian mediante declaraciones "condicionales" de IAM en las políticas y se hace referencia a ellas mediante una etiqueta condicional específica. Las claves de etiquetas tienen el prefijo "dms", el tipo de recurso y el prefijo "tag". Se muestra a continuación el formato de la etiqueta.

dms:{resource type}-tag/{tag key}={tag value}

Por ejemplo, suponga que desea definir una política que permita únicamente que una llamada a la API tenga éxito para una instancia de replicación que contiene la etiqueta "stage=production". La siguiente declaración condicional se asocia a un recurso con la etiqueta proporcionada.

"Condition": { "streq": { "dms:rep-tag/stage":"production" } }

Añada la siguiente etiqueta a una instancia de replicación que coincida con esta condición de la política.

stage production

Además de las etiquetas ya asignadas a recursos de AWS DMS, también se pueden escribir políticas para limitar las claves de etiquetas y los valores que se pueden aplicar a un recurso determinado. En este caso, el prefijo de la etiqueta es "req".

Por ejemplo, la siguiente declaración de la política limita las etiquetas que un usuario puede asignar a un recurso determinado a una lista específica de valores permitidos.

"Condition": { "streq": { "dms:rep-tag/stage": [ "production", "development", "testing" ] } }

Los siguientes ejemplos de políticas limitan el acceso a un recurso de AWS DMS en función de las etiquetas de recursos.

La siguiente política limita el acceso a una instancia de replicación donde el valor de la etiqueta es "Desktop" y la clave de la etiqueta es "Env":

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "dms:*" ], "Effect": "Deny", "Resource": "*", "Condition": { "StringEquals": { "dms:rep-tag/Env": [ "Desktop" ] } } } ] }

Los siguientes comandos tienen éxito o se produce un error en función de la política de IAM que restringe el acceso cuando el valor de etiqueta es "Desktop" y la clave de etiqueta es "Env".

$ aws dms list-tags-for-resource --resource-name arn:aws:dms:us-east-1:152683116:rep:46DHOU7JOJYOJXWDOZNFEN --endpoint-url http://localhost:8000 { "TagList": [ { "Value": "Desktop", "Key": "Env" } ] } $ aws dms delete-replication-instance --replication-instance-arn "arn:aws:dms:us-east-1:152683116:rep:46DHOU7JOJYOJXWDOZNFEN" A client error (AccessDeniedException) occurred when calling the DeleteReplicationInstance operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: dms:DeleteReplicationInstance on resource: arn:aws:dms:us-east-1:152683116:rep:46DHOU7JOJYOJXWDOZNFEN $ aws dms modify-replication-instance --replication-instance-arn "arn:aws:dms:us-east-1:152683116:rep:46DHOU7JOJYOJXWDOZNFEN" A client error (AccessDeniedException) occurred when calling the ModifyReplicationInstance operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: dms:ModifyReplicationInstance on resource: arn:aws:dms:us-east-1:152683116:rep:46DHOU7JOJYOJXWDOZNFEN $ aws dms add-tags-to-resource --resource-name arn:aws:dms:us-east-1:152683116:rep:46DHOU7JOJYOJXWDOZNFEN --tags Key=CostCenter,Value=1234 A client error (AccessDeniedException) occurred when calling the AddTagsToResource operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: dms:AddTagsToResource on resource: arn:aws:dms:us-east-1:152683116:rep:46DHOU7JOJYOJXWDOZNFEN $ aws dms remove-tags-from-resource --resource-name arn:aws:dms:us-east-1:152683116:rep:46DHOU7JOJYOJXWDOZNFEN --tag-keys Env A client error (AccessDeniedException) occurred when calling the RemoveTagsFromResource operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: dms:RemoveTagsFromResource on resource: arn:aws:dms:us-east-1:152683116:rep:46DHOU7JOJYOJXWDOZNFEN

La siguiente política limita el acceso a un punto de enlace de AWS DMS donde el valor de la etiqueta es "Desktop" y la clave de la etiqueta es "Env".

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "dms:*" ], "Effect": "Deny", "Resource": "*", "Condition": { "StringEquals": { "dms:endpoint-tag/Env": [ "Desktop" ] } } } ] }

Los siguientes comandos tienen éxito o se produce un error en función de la política de IAM que restringe el acceso cuando el valor de etiqueta es "Desktop" y la clave de etiqueta es "Env".

$ aws dms list-tags-for-resource --resource-name arn:aws:dms:us-east-1:152683116:endpoint:J2YCZPNGOLFY52344IZWA6I { "TagList": [ { "Value": "Desktop", "Key": "Env" } ] } $ aws dms delete-endpoint --endpoint-arn "arn:aws:dms:us-east-1:152683116:endpoint:J2YCZPNGOLFY52344IZWA6I" A client error (AccessDeniedException) occurred when calling the DeleteEndpoint operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: dms:DeleteEndpoint on resource: arn:aws:dms:us-east-1:152683116:endpoint:J2YCZPNGOLFY52344IZWA6I $ aws dms modify-endpoint --endpoint-arn "arn:aws:dms:us-east-1:152683116:endpoint:J2YCZPNGOLFY52344IZWA6I" A client error (AccessDeniedException) occurred when calling the ModifyEndpoint operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: dms:ModifyEndpoint on resource: arn:aws:dms:us-east-1:152683116:endpoint:J2YCZPNGOLFY52344IZWA6I $ aws dms add-tags-to-resource --resource-name arn:aws:dms:us-east-1:152683116:endpoint:J2YCZPNGOLFY52344IZWA6I --tags Key=CostCenter,Value=1234 A client error (AccessDeniedException) occurred when calling the AddTagsToResource operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: dms:AddTagsToResource on resource: arn:aws:dms:us-east-1:152683116:endpoint:J2YCZPNGOLFY52344IZWA6I $ aws dms remove-tags-from-resource --resource-name arn:aws:dms:us-east-1:152683116:endpoint:J2YCZPNGOLFY52344IZWA6I --tag-keys Env A client error (AccessDeniedException) occurred when calling the RemoveTagsFromResource operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: dms:RemoveTagsFromResource on resource: arn:aws:dms:us-east-1:152683116:endpoint:J2YCZPNGOLFY52344IZWA6I

La siguiente política limita el acceso a una tarea de replicación donde el valor de la etiqueta es "Desktop" y la clave de la etiqueta es "Env".

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "dms:*" ], "Effect": "Deny", "Resource": "*", "Condition": { "StringEquals": { "dms:task-tag/Env": [ "Desktop" ] } } } ] }

Los siguientes comandos tienen éxito o se produce un error en función de la política de IAM que restringe el acceso cuando el valor de etiqueta es "Desktop" y la clave de etiqueta es "Env".

$ aws dms list-tags-for-resource --resource-name arn:aws:dms:us-east-1:152683116:task:RB7N24J2XBUPS3RFABZTG3 { "TagList": [ { "Value": "Desktop", "Key": "Env" } ] } $ aws dms delete-replication-task --replication-task-arn "arn:aws:dms:us-east-1:152683116:task:RB7N24J2XBUPS3RFABZTG3" A client error (AccessDeniedException) occurred when calling the DeleteReplicationTask operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: dms:DeleteReplicationTask on resource: arn:aws:dms:us-east-1:152683116:task:RB7N24J2XBUPS3RFABZTG3 $ aws dms add-tags-to-resource --resource-name arn:aws:dms:us-east-1:152683116:task:RB7N24J2XBUPS3RFABZTG3 --tags Key=CostCenter,Value=1234 A client error (AccessDeniedException) occurred when calling the AddTagsToResource operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: dms:AddTagsToResource on resource: arn:aws:dms:us-east-1:152683116:task:RB7N24J2XBUPS3RFABZTG3 $ aws dms remove-tags-from-resource --resource-name arn:aws:dms:us-east-1:152683116:task:RB7N24J2XBUPS3RFABZTG3 --tag-keys Env A client error (AccessDeniedException) occurred when calling the RemoveTagsFromResource operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: dms:RemoveTagsFromResource on resource: arn:aws:dms:us-east-1:152683116:task:RB7N24J2XBUPS3RFABZTG3