Control de permisos para Operaciones por lotes mediante etiquetas de trabajo - Amazon Simple Storage Service

Control de permisos para Operaciones por lotes mediante etiquetas de trabajo

Para ayudarle a administrar sus trabajos de Operaciones por lotes de Amazon S3, puede agregar etiquetas de trabajo. Las etiquetas de trabajo le permiten controlar el acceso a sus trabajos de Operaciones por lotes y hacer que las etiquetas se apliquen cuando se cree un trabajo.

Puede aplicar hasta 50 etiquetas de trabajo a cada trabajo de Operaciones por lotes. Al usar etiquetas, puede establecer políticas pormenorizadas que restringen el conjunto de usuarios que pueden editar el trabajo. Las etiquetas de trabajo pueden conceder o limitar la capacidad de un usuario para cancelar un trabajo, activar un trabajo en estado de confirmación o cambiar el nivel de prioridad de un trabajo. Además, puede exigir que las etiquetas se apliquen a todos los trabajos nuevos y especificar los pares clave-valor permitidos para las etiquetas. Puede expresar todas estas condiciones utilizando el mismo lenguaje de política de AWS Identity and Access Management (IAM). Para obtener más información, consulte Actions, resources, and condition keys for Amazon S3 en la Referencia de autorización de servicios.

Para obtener más información sobre los permisos para las operaciones de la API de S3 por tipos de recursos de S3, consulte Permisos necesarios para las operaciones de la API de Amazon S3.

En el ejemplo siguiente se muestra cómo puede utilizar etiquetas de trabajo de Operaciones por lotes de S3 para conceder a los usuarios permiso para crear y editar solo los trabajos que se ejecutan en un departamento específico (por ejemplo: el departamento Finanzas o Conformidad). También puede asignar trabajos en función de la etapa de desarrollo con la que están relacionados, como Control de calidad o Producción.

En este ejemplo, se utilizan etiquetas de trabajo de Operaciones por lotes de S3 en las políticas de IAM con el fin de conceder a los usuarios permiso para crear y editar solo los trabajos que se ejecutan en su departamento. Los trabajos se asignan en función de la etapa de desarrollo con la que están relacionados, como Control de calidad o Producción.

En los siguientes ejemplos, se utilizan los siguientes departamentos, cada uno de los cuales usa Operaciones por lotes de distinta forma:

  • Finanzas

  • Conformidad

  • Inteligencia de negocio

  • Diseño

Control del acceso mediante la asignación de etiquetas a usuarios y recursos

En este escenario, los administradores están utilizando el control de acceso basado en atributos (ABAC). ABAC es una estrategia de autorización de IAM que define los permisos adjuntando etiquetas a los usuarios y a los recursos de AWS.

A los usuarios y los trabajos se les asigna una de las siguientes etiquetas de departamento:

Clave : valor
  • department : Finance

  • department : Compliance

  • department : BusinessIntelligence

  • department : Engineering

    nota

    Las claves y los valores de las etiquetas de trabajo distinguen entre mayúsculas y minúsculas.

Mediante la estrategia de control de acceso de ABAC, se concede a un usuario del departamento de Finanzas permiso para crear y administrar trabajos de Operaciones por lotes de S3 en el departamento al asociar la etiqueta department=Finance con el usuario.

Además, puede adjuntar una política administrada al usuario de IAM que permita a cualquier usuario de su empresa crear o modificar trabajos de Operaciones por lotes de S3 dentro de sus respectivos departamentos.

La política de este ejemplo incluye tres instrucciones de políticas:

  • La primera instrucción de la política permite al usuario crear un trabajo de Operaciones por lotes siempre que la solicitud de creación de trabajo incluya una etiqueta de trabajo que coincida con su departamento respectivo. Esto se expresa utilizando la sintaxis "${aws:PrincipalTag/department}", que se reemplaza por la etiqueta de departamento del usuario en el momento de la evaluación de políticas. La condición se cumple cuando el valor proporcionado para la etiqueta de departamento en la solicitud ("aws:RequestTag/department") coincide con el departamento del usuario.

  • La segunda instrucción de la política permite a los usuarios cambiar la prioridad de los trabajos o actualizar el estado de un trabajo siempre que el trabajo que está actualizando coincida con el departamento del usuario.

  • La tercera instrucción permite a un usuario actualizar las etiquetas de un trabajo de Operaciones por lotes en cualquier momento a través de una solicitud PutJobTagging, siempre y cuando (1) se conserve su etiqueta de departamento y (2) el trabajo que esté actualizando se incluya en su departamento.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:CreateJob", "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/department": "${aws:PrincipalTag/department}" } } }, { "Effect": "Allow", "Action": [ "s3:UpdateJobPriority", "s3:UpdateJobStatus" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/department": "${aws:PrincipalTag/department}" } } }, { "Effect": "Allow", "Action": "s3:PutJobTagging", "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/department": "${aws:PrincipalTag/department}", "aws:ResourceTag/department": "${aws:PrincipalTag/department}" } } } ] }

Etiquetado de trabajos de Operaciones por lotes por etapa y aplicación de límites a la prioridad del trabajo

Todos los trabajos de Operaciones por lotes de S3 tienen una prioridad numérica, que Amazon S3 utiliza para decidir en qué orden ejecutar los trabajos. En este ejemplo, se restringe la prioridad máxima que la mayoría de los usuarios pueden asignar a los trabajos, con rangos de prioridad más altos reservados para un conjunto limitado de usuarios privilegiados, de la siguiente manera:

  • Rango de prioridad de fase de control de calidad (bajo): 1-100

  • Rango de prioridad de la etapa de producción (alto): 1-300

Para ello, introduzca un nuevo conjunto de etiquetas que represente la etapa del trabajo:

Clave : valor
  • stage : QA

  • stage : Production

Creación y actualización de trabajos de baja prioridad dentro de un departamento

Esta política introduce dos nuevas restricciones a la creación y actualización de trabajos de Operaciones por lotes de S3, además de la restricción basada en departamentos:

  • Permite a los usuarios crear o actualizar trabajos en su departamento con una nueva condición que requiere que el trabajo incluya la etiqueta stage=QA.

  • Permite a los usuarios crear o actualizar la prioridad de un trabajo hasta una nueva prioridad máxima de 100.

{         "Version": "2012-10-17",         "Statement": [         {         "Effect": "Allow",         "Action": "s3:CreateJob",         "Resource": "*",         "Condition": {             "StringEquals": {                 "aws:RequestTag/department": "${aws:PrincipalTag/department}",                 "aws:RequestTag/stage": "QA"             },             "NumericLessThanEquals": {                 "s3:RequestJobPriority": 100             }         }     },     {         "Effect": "Allow",         "Action": [             "s3:UpdateJobStatus"         ],         "Resource": "*",         "Condition": {             "StringEquals": {                 "aws:ResourceTag/department": "${aws:PrincipalTag/department}"             }         }     },     {         "Effect": "Allow",         "Action": "s3:UpdateJobPriority",         "Resource": "*",         "Condition": {             "StringEquals": {                 "aws:ResourceTag/department": "${aws:PrincipalTag/department}",                 "aws:ResourceTag/stage": "QA"             },             "NumericLessThanEquals": {                 "s3:RequestJobPriority": 100             }         }     },     {         "Effect": "Allow",         "Action": "s3:PutJobTagging",         "Resource": "*",         "Condition": {             "StringEquals": {                 "aws:RequestTag/department" : "${aws:PrincipalTag/department}",                 "aws:ResourceTag/department": "${aws:PrincipalTag/department}",                 "aws:RequestTag/stage": "QA",                 "aws:ResourceTag/stage": "QA"             }         }     },     {         "Effect": "Allow",         "Action": "s3:GetJobTagging",         "Resource": "*"     }     ] }

Creación y actualización de trabajos de alta prioridad dentro de un departamento

Es posible que un pequeño número de usuarios requiera la capacidad de crear trabajos de alta prioridad en Control de calidad o Producción. Para dar soporte a esta necesidad, cree una política administrada que se adapte a la política de baja prioridad de la sección anterior.

Esta política hace lo siguiente:

  • Permite a los usuarios crear o actualizar trabajos en su departamento con las etiquetas stage=QA o stage=Production.

  • Permite a los usuarios crear o actualizar la prioridad de un trabajo hasta un máximo de 300.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:CreateJob", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:RequestTag/stage": [ "QA", "Production" ] }, "StringEquals": { "aws:RequestTag/department": "${aws:PrincipalTag/department}" }, "NumericLessThanEquals": { "s3:RequestJobPriority": 300 } } }, { "Effect": "Allow", "Action": [ "s3:UpdateJobStatus" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/department": "${aws:PrincipalTag/department}" } } }, { "Effect": "Allow", "Action": "s3:UpdateJobPriority", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:ResourceTag/stage": [ "QA", "Production" ] }, "StringEquals": { "aws:ResourceTag/department": "${aws:PrincipalTag/department}" }, "NumericLessThanEquals": { "s3:RequestJobPriority": 300 } } }, { "Effect": "Allow", "Action": "s3:PutJobTagging", "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/department": "${aws:PrincipalTag/department}", "aws:ResourceTag/department": "${aws:PrincipalTag/department}" }, "ForAnyValue:StringEquals": { "aws:RequestTag/stage": [ "QA", "Production" ], "aws:ResourceTag/stage": [ "QA", "Production" ] } } } ] }