

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Résolution des erreurs ABAC courantes pour DynamoDB Streams
<a name="abac-troubleshooting-streams"></a>

Si vous recevez un message `AccessDeniedException` ou si vos conditions basées sur des balises ne se comportent pas comme prévu après avoir activé ABAC pour DynamoDB Streams, consultez cette rubrique pour diagnostiquer et résoudre les causes les plus courantes.

## Service-specific les clés de condition dans les politiques entraînent une erreur
<a name="abac-troubleshooting-streams-service-specific-keys"></a>

Service-specific les clés de condition ne sont pas considérées comme des clés de condition valides. Si vous avez utilisé de telles clés dans vos politiques, elles génèrent une erreur. Vous devez remplacer les clés de condition spécifiques au service par une clé de condition appropriée pour implémenter ABAC pour DynamoDB Streams.

Supposons, par exemple, que vous ayez utilisé la clé de `dynamodb:ResourceTag` condition dans une politique qui exécute la `GetRecords` demande sur un flux. La demande échoue avec un`AccessDeniedException`. L'exemple suivant montre la politique erronée avec la clé de `dynamodb:ResourceTag` condition.

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

Pour résoudre ce problème, remplacez la clé de condition `dynamodb:ResourceTag` par `aws:ResourceTag`, comme indiqué dans l’exemple suivant.

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

## Streams ABAC est activé mais les conditions des balises ne sont pas évaluées
<a name="abac-troubleshooting-streams-not-evaluated"></a>

Si vous avez récemment activé Streams ABAC, la modification ne s'est peut-être pas encore propagée. La mise à jour de l'état de Streams ABAC est une opération asynchrone. Patientez quelques minutes, puis réessayez votre demande.

## Impossible de baliser un flux après la suppression de la table parent
<a name="abac-troubleshooting-streams-tag-deleted-table"></a>

Après la suppression d'une table parent, le flux continue d'exister pendant 24 heures avant d'être supprimé. Au cours de cette fenêtre de 24 heures, vous pouvez gérer les balises de flux à l'aide de la CLI ou des commandes du SDK (`tag-resource``untag-resource`,, et`list-tags-of-resource`) avec l'ARN du flux. Vous ne pouvez pas utiliser la console ou CloudFormation modifier les balises d'un flux dont la table parent n'existe plus.

Si vous recevez un message d'erreur lorsque vous tentez d'utiliser le tag via la console, utilisez plutôt la CLI :

```
aws dynamodb tag-resource \
  --resource-arn arn:aws:dynamodb:us-east-1:123456789012:table/DeletedTable/stream/2024-01-01T00:00:00.000 \
  --tags Key=environment,Value=production
```

Pour vérifier les balises existantes sur le flux lorsque la table parent a été supprimée, procédez comme suit :

```
aws dynamodb list-tags-of-resource \
  --resource-arn arn:aws:dynamodb:us-east-1:123456789012:table/DeletedTable/stream/2024-01-01T00:00:00.000
```

Si vous recevez un`ResourceNotFoundException`, la période de conservation de 24 heures a expiré et le stream n'existe plus.

## Impossible de se désinscrire de Streams ABAC
<a name="abac-troubleshooting-streams-unable-opt-out"></a>

Vous ne pouvez vous-même désactiver Streams ABAC que si les conditions suivantes sont réunies :
+ Vous avez utilisé la méthode en libre-service pour l’activer via la console DynamoDB.
+ Vous le désactiver dans les sept jours civils suivant son activation.

Si Streams ABAC a été activé pour votre compte via le Support, vous ne pourrez pas vous désinscrire via la console DynamoDB. Pour vous désinscrire, contactez le Support.

## CloudFormation les déploiements échouent lors du balisage des flux
<a name="abac-troubleshooting-streams-cfn-tagging"></a>

CloudFormation les déploiements qui créent ou mettent à jour une table avec un flux peuvent échouer si le rôle IAM ne dispose pas des autorisations requises. Plus précisément, le rôle doit disposer `dynamodb:TagResource` d'`dynamodb:UntagResource`autorisations pour les ressources de flux. Cela s'applique à la fois aux types de `AWS::DynamoDB::GlobalTable` ressources `AWS::DynamoDB::Table` et affecte à la fois les balises de flux explicites et les balises héritées au niveau de la pile.

Pour résoudre ce problème, mettez à jour la politique IAM de votre rôle de CloudFormation service afin d'inclure les autorisations de balisage des flux :

```
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "dynamodb:TagResource",
        "dynamodb:UntagResource"
      ],
      "Resource": [
        "arn:aws:dynamodb:*:*:table/*/stream/*"
      ]
    }
  ]
}
```