Políticas de control de acceso de IAM basado en etiquetas - Amazon Athena

Políticas de control de acceso de IAM basado en etiquetas

Tener etiquetas le permite escribir una política de IAM que incluya el bloque Condition para controlar el acceso a un recurso en función de sus etiquetas.

Ejemplos de política de etiquetas para grupos de trabajo

ejemplo 1. Política de etiquetado básico

La siguiente política de IAM le permite ejecutar las consultas e interactuar con etiquetas para el grupo de trabajo llamado workgroupA:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "athena:ListWorkGroups", "athena:ListEngineVersions", "athena:ListDataCatalogs", "athena:ListDatabases", "athena:GetDatabase", "athena:ListTableMetadata", "athena:GetTableMetadata" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "athena:GetWorkGroup", "athena:TagResource", "athena:UntagResource", "athena:ListTagsForResource", "athena:StartQueryExecution", "athena:GetQueryExecution", "athena:BatchGetQueryExecution", "athena:ListQueryExecutions", "athena:StopQueryExecution", "athena:GetQueryResults", "athena:GetQueryResultsStream", "athena:CreateNamedQuery", "athena:GetNamedQuery", "athena:BatchGetNamedQuery", "athena:ListNamedQueries", "athena:DeleteNamedQuery", "athena:CreatePreparedStatement", "athena:GetPreparedStatement", "athena:ListPreparedStatements", "athena:UpdatePreparedStatement", "athena:DeletePreparedStatement" ], "Resource": "arn:aws:athena:us-east-1:123456789012:workgroup/workgroupA" } ] }
ejemplo 2. Bloqueo de política que deniega acciones en un grupo de trabajo en función de un par de claves de etiqueta y valores de etiqueta

Las etiquetas que están asociadas a un recurso como un grupo de trabajo se denominan etiquetas de recursos. Las etiquetas de recursos le permiten escribir bloques de política como los siguientes que deniegan las acciones enumeradas en cualquier grupo de trabajo etiquetado con un par clave-valor como stack, production.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "athena:GetWorkGroup", "athena:UpdateWorkGroup", "athena:DeleteWorkGroup", "athena:TagResource", "athena:UntagResource", "athena:ListTagsForResource", "athena:StartQueryExecution", "athena:GetQueryExecution", "athena:BatchGetQueryExecution", "athena:ListQueryExecutions", "athena:StopQueryExecution", "athena:GetQueryResults", "athena:GetQueryResultsStream", "athena:CreateNamedQuery", "athena:GetNamedQuery", "athena:BatchGetNamedQuery", "athena:ListNamedQueries", "athena:DeleteNamedQuery", "athena:CreatePreparedStatement", "athena:GetPreparedStatement", "athena:ListPreparedStatements", "athena:UpdatePreparedStatement", "athena:DeletePreparedStatement" ], "Resource": "arn:aws:athena:us-east-1:123456789012:workgroup/*", "Condition": { "StringEquals": { "aws:ResourceTag/stack": "production" } } } ] }
ejemplo 3. Bloqueo de política que restringe las solicitudes de acciones de cambio de etiqueta a etiquetas especificadas

Las etiquetas que se pasan como parámetros a operaciones que cambian etiquetas (por ejemplo, TagResource, UntagResource o CreateWorkGroup con etiquetas) se denominan etiquetas de solicitud. El siguiente bloque de política de ejemplo permite la operación CreateWorkGroup solo si una de las etiquetas pasadas tiene la clave costcenter y el valor 1, 2 o 3.

nota

Si desea permitir que un rol de IAM pase etiquetas como parte de una operación CreateWorkGroup, asegúrese de conceder permisos al rol para las acciones TagResource y CreateWorkGroup.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "athena:CreateWorkGroup", "athena:TagResource" ], "Resource": "arn:aws:athena:us-east-1:123456789012:workgroup/*", "Condition": { "StringEquals": { "aws:RequestTag/costcenter": [ "1", "2", "3" ] } } } ] }

Ejemplos de política de etiquetas para catálogos de datos

ejemplo 1. Política de etiquetado básico

La siguiente política de IAM le permite interactuar con etiquetas para el catálogo de datos denominado datacatalogA:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "athena:ListWorkGroups", "athena:ListEngineVersions", "athena:ListDataCatalogs", "athena:ListDatabases", "athena:GetDatabase", "athena:ListTableMetadata", "athena:GetTableMetadata" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "athena:GetWorkGroup", "athena:TagResource", "athena:UntagResource", "athena:ListTagsForResource", "athena:StartQueryExecution", "athena:GetQueryExecution", "athena:BatchGetQueryExecution", "athena:ListQueryExecutions", "athena:StopQueryExecution", "athena:GetQueryResults", "athena:GetQueryResultsStream", "athena:CreateNamedQuery", "athena:GetNamedQuery", "athena:BatchGetNamedQuery", "athena:ListNamedQueries", "athena:DeleteNamedQuery" ], "Resource": [ "arn:aws:athena:us-east-1:123456789012:workgroup/*" ] }, { "Effect": "Allow", "Action": [ "athena:CreateDataCatalog", "athena:GetDataCatalog", "athena:UpdateDataCatalog", "athena:DeleteDataCatalog", "athena:ListDatabases", "athena:GetDatabase", "athena:ListTableMetadata", "athena:GetTableMetadata", "athena:TagResource", "athena:UntagResource", "athena:ListTagsForResource" ], "Resource": "arn:aws:athena:us-east-1:123456789012:datacatalog/datacatalogA" } ] }
ejemplo 2. Bloqueo de política que deniega acciones en un catálogo de datos en función de un par de claves de etiqueta y valores de etiqueta

Puede utilizar etiquetas de recursos para escribir bloques de política que denieguen acciones específicas en catálogos de datos etiquetados con pares clave-valor de etiqueta específicos. La siguiente política de ejemplo deniega acciones en catálogos de datos que tienen el par clave-valor de etiqueta stack, production.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "athena:CreateDataCatalog", "athena:GetDataCatalog", "athena:UpdateDataCatalog", "athena:DeleteDataCatalog", "athena:GetDatabase", "athena:ListDatabases", "athena:GetTableMetadata", "athena:ListTableMetadata", "athena:StartQueryExecution", "athena:TagResource", "athena:UntagResource", "athena:ListTagsForResource" ], "Resource": "arn:aws:athena:us-east-1:123456789012:datacatalog/*", "Condition": { "StringEquals": { "aws:ResourceTag/stack": "production" } } } ] }
ejemplo 3. Bloqueo de política que restringe las solicitudes de acciones de cambio de etiqueta a etiquetas especificadas

Las etiquetas que se pasan como parámetros a operaciones que cambian etiquetas (por ejemplo, TagResource, UntagResource o CreateDataCatalog con etiquetas) se denominan etiquetas de solicitud. El siguiente bloque de política de ejemplo permite la operación CreateDataCatalog solo si una de las etiquetas pasadas tiene la clave costcenter y el valor 1, 2 o 3.

nota

Si desea permitir que un rol de IAM pase etiquetas como parte de una operación CreateDataCatalog, asegúrese de conceder permisos al rol para las acciones TagResource y CreateDataCatalog.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "athena:CreateDataCatalog", "athena:TagResource" ], "Resource": "arn:aws:athena:us-east-1:123456789012:datacatalog/*", "Condition": { "StringEquals": { "aws:RequestTag/costcenter": [ "1", "2", "3" ] } } } ] }