Ejemplo 3: Denegación del acceso a la transmisión a menos que esté presente una etiqueta específica
Con la clave de condición aws:TagKeys, puede denegar el etiquetado de un flujo a menos que se incluya una clave de etiqueta obligatoria en la solicitud.
Uso de la CLI de AWS
-
Agregue una política administrada por el cliente a un rol que tenga acceso a DynamoDB, como se muestra en el siguiente ejemplo.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "dynamodb:TagResource" ], "Resource": "arn:aws:dynamodb:*:*:table/*/stream/*", "Condition": { "Null": { "aws:TagKeys": "false" }, "ForAllValues:StringNotEquals": { "aws:TagKeys": "CostCenter" } } } ] } -
Asuma el rol e intente etiquetar un flujo con una clave de etiqueta que no sea
CostCenter.aws dynamodb tag-resource \ --resource-arn arn:aws:dynamodb:us-east-1:123456789012:table/myMusicTable/stream/2024-01-01T00:00:00.000 \ --tags Key=Department,Value=Engineering
Comportamiento con y sin ABAC de Streams
- Sin ABAC de Streams
-
Si ABAC de Streams no está habilitado para la Cuenta de AWS, DynamoDB no envía las claves de etiqueta en la solicitud a IAM. La condición
Nullgarantiza que la condición se evalúe como false si no hay claves de etiqueta en la solicitud. Como la política de denegación no coincide, el comandotag-resourcese completa correctamente. - Con ABAC de Streams
-
Si ABAC de Streams está habilitado para la Cuenta de AWS, la clave de etiqueta
Departmentse evalúa con respecto a la clave de etiqueta basada en condicionesCostCenterpresente en la política de denegación. La clave de etiquetaDepartmentno coincide con la clave de etiqueta presente en la política de denegación debido al operadorStringNotEquals. Por lo tanto, la acciónTagResourceproduce un error y devuelve unaAccessDeniedException.