

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Risoluzione dei problemi più comuni di ABAC per DynamoDB Streams
<a name="abac-troubleshooting-streams"></a>

Se ricevi `AccessDeniedException` o le condizioni basate su tag non si comportano come previsto dopo aver abilitato ABAC for DynamoDB Streams, utilizza questo argomento per diagnosticare e risolvere le cause più comuni.

## Service-specific le chiavi di condizione nelle politiche generano un errore
<a name="abac-troubleshooting-streams-service-specific-keys"></a>

Service-specific le chiavi di condizione non sono considerate chiavi di condizione valide. Se hai utilizzato tali chiavi nelle tue politiche, queste chiavi generano un errore. È necessario sostituire le chiavi delle condizioni specifiche del servizio con una chiave di condizione appropriata per implementare ABAC for DynamoDB Streams.

Ad esempio, supponiamo di aver utilizzato la chiave `dynamodb:ResourceTag` condition in una policy che esegue la richiesta su uno stream. `GetRecords` La richiesta ha esito negativo con un`AccessDeniedException`. L'esempio seguente mostra la politica errata con la chiave di `dynamodb:ResourceTag` condizione.

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

Per risolvere questo problema, sostituisci la chiave di condizione `dynamodb:ResourceTag` con `aws:ResourceTag`, come illustrato nell’esempio seguente.

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

## Streams ABAC è abilitato ma le condizioni dei tag non vengono valutate
<a name="abac-troubleshooting-streams-not-evaluated"></a>

Se di recente hai abilitato Streams ABAC, la modifica potrebbe non essere ancora stata propagata. L'aggiornamento dello stato di Streams ABAC è un'operazione asincrona. Attendi qualche minuto e riprova la richiesta.

## Impossibile etichettare uno stream dopo l'eliminazione della tabella principale
<a name="abac-troubleshooting-streams-tag-deleted-table"></a>

Dopo l'eliminazione di una tabella principale, lo stream continua a esistere per 24 ore prima di essere rimosso. Durante questa finestra di 24 ore, puoi gestire i tag dello stream utilizzando i comandi CLI o SDK (`tag-resource``untag-resource`, e`list-tags-of-resource`) con lo stream ARN. Non puoi usare la console o CloudFormation modificare i tag su uno stream la cui tabella principale non esiste più.

Se ricevi un errore durante il tentativo di taggare tramite la console, utilizza invece 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
```

Per verificare i tag esistenti nello stream con la tabella principale eliminata:

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

Se ricevi uno`ResourceNotFoundException`, il periodo di conservazione di 24 ore è scaduto e lo stream non esiste più.

## Impossibile disattivare Streams ABAC
<a name="abac-troubleshooting-streams-unable-opt-out"></a>

Puoi disattivare personalmente Streams ABAC solo se sono soddisfatte le seguenti condizioni:
+ È stata utilizzata la modalità self-service di adesione tramite la console DynamoDB.
+ La disattivazione avviene entro sette giorni di calendario dall’adesione.

Se Streams ABAC è stato abilitato per il tuo account tramite Support, non potrai disattivarlo tramite la console DynamoDB. Per annullare l'iscrizione, contatta l'assistenza.

## CloudFormation le distribuzioni falliscono durante l'etichettatura degli stream
<a name="abac-troubleshooting-streams-cfn-tagging"></a>

CloudFormation le distribuzioni che creano o aggiornano una tabella con uno stream potrebbero fallire se al ruolo IAM mancano le autorizzazioni richieste. In particolare, il ruolo deve disporre di autorizzazioni `dynamodb:TagResource` e `dynamodb:UntagResource` autorizzazioni per le risorse di streaming. Ciò vale sia per i tipi di `AWS::DynamoDB::GlobalTable` risorse, `AWS::DynamoDB::Table` sia per i tag stream espliciti che per i tag ereditati a livello di stack.

Per risolvere questo problema, aggiorna la policy IAM del tuo ruolo CloudFormation di servizio in modo da includere le autorizzazioni per lo stream tagging:

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