View a markdown version of this page

Ejemplo 1: Permitir el acceso de lectura a la secuencia mediante aws:ResourceTag - Amazon DynamoDB

Ejemplo 1: Permitir el acceso de lectura a la secuencia mediante aws:ResourceTag

Con la clave de condición aws:ResourceTag/tag-key, puede comparar el par clave-valor de etiqueta que está especificado en una política de IAM con el par clave-valor asociado a una secuencia de DynamoDB. Por ejemplo, puede permitir las operaciones GetRecords de transmisión si las condiciones de la etiqueta coinciden.

Uso de la CLI de AWS

  1. Cree una tabla con un flujo habilitado y agregue una etiqueta.

    aws dynamodb create-table \ --table-name myMusicTable \ --attribute-definitions AttributeName=id,AttributeType=S \ --key-schema AttributeName=id,KeyType=HASH \ --provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5 \ --stream-specification StreamEnabled=true,StreamViewType=NEW_AND_OLD_IMAGES \ --region us-east-1
  2. Agregue una etiqueta al flujo. En primer lugar, obtenga el ARN del flujo de la descripción de la tabla.

    STREAM_ARN=$(aws dynamodb describe-table \ --table-name myMusicTable \ --query "Table.LatestStreamArn" \ --output text \ --region us-east-1) aws dynamodb tag-resource \ --resource-arn $STREAM_ARN \ --tags Key=Team,Value=Analytics \ --region us-east-1
  3. Cree una política insertada y agréguela a un rol, como se muestra en el siguiente ejemplo.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:DescribeStream", "dynamodb:GetRecords" ], "Resource": "arn:aws:dynamodb:*:*:table/*/stream/*", "Condition": { "StringEquals": { "aws:ResourceTag/Team": "Analytics" } } } ] }

    Esta política permite las operaciones DescribeStream y GetRecords cuando la etiqueta de la transmisión coincide con la clave “Equipo” y el valor “Análisis” especificados en la política.

  4. Asuma el rol con la políticas descrita en el paso 3.

  5. Utilice el comando describe-stream de la AWS CLI en el flujo.

    aws dynamodb describe-stream \ --stream-arn $STREAM_ARN \ --region us-east-1

Comportamiento con y sin ABAC de Streams

Sin ABAC de Streams

Si ABAC de Streams no está habilitado para la Cuenta de AWS, las condiciones de etiquetado de la política de IAM y el flujo de DynamoDB no coinciden. La acción DescribeStream devuelve una AccessDeniedException porque ninguna política permite la acción sin que las condiciones de la etiqueta coincidan.

Con ABAC de Streams

Si ABAC de Streams está habilitado para la Cuenta de AWS, la acción DescribeStream se completa correctamente. Esto se debe a que la política insertada permite la acción si coinciden las condiciones de etiqueta de la política de IAM y del flujo.