DynamoDB - Controllo degli accessi

DynamoDB utilizza le credenziali fornite per autenticare le richieste. Queste credenziali sono obbligatorie e devono includere le autorizzazioni per l'accesso alle risorse AWS. Queste autorizzazioni coprono praticamente ogni aspetto di DynamoDB fino alle caratteristiche minori di un'operazione o funzionalità.

Tipi di autorizzazioni

In questa sezione, discuteremo delle varie autorizzazioni e dell'accesso alle risorse in DynamoDB.

Autenticazione degli utenti

Al momento della registrazione, hai fornito una password e un indirizzo email, che fungono da credenziali di root. DynamoDB associa questi dati al tuo account AWS e li utilizza per fornire l'accesso completo a tutte le risorse.

AWS consiglia di utilizzare le credenziali di root solo per la creazione di un account di amministrazione. Ciò consente di creare account / utenti IAM con meno privilegi. Gli utenti IAM sono altri account generati con il servizio IAM. I loro permessi / privilegi di accesso includono l'accesso a pagine protette e alcune autorizzazioni personalizzate come la modifica della tabella.

Le chiavi di accesso forniscono un'altra opzione per account e accesso aggiuntivi. Usali per concedere l'accesso e anche per evitare la concessione manuale dell'accesso in determinate situazioni. Gli utenti federati forniscono un'altra opzione consentendo l'accesso tramite un provider di identità.

Amministrazione

Le risorse AWS rimangono di proprietà di un account. I criteri di autorizzazione regolano le autorizzazioni concesse per generare o accedere alle risorse. Gli amministratori associano le policy di autorizzazione alle identità IAM, ovvero ruoli, gruppi, utenti e servizi. Inoltre assegnano le autorizzazioni alle risorse.

Le autorizzazioni specificano utenti, risorse e azioni. Nota gli amministratori sono semplicemente account con privilegi di amministratore.

Operazione e risorse

Le tabelle rimangono le risorse principali in DynamoDB. Le sottorisorse servono come risorse aggiuntive, ad esempio flussi e indici. Queste risorse utilizzano nomi univoci, alcuni dei quali sono menzionati nella tabella seguente:

genere ARN (nome risorsa Amazon)
Stream arn: aws: dynamodb: region: account-id: tabella / nome-tabella / stream / stream-label
Indice arn: aws: dynamodb: region: account-id: tabella / nome-tabella / indice / nome-indice
tavolo arn: aws: dynamodb: region: account-id: tabella / nome-tabella

Proprietà

Un proprietario della risorsa è definito come un account AWS che ha generato la risorsa o account dell'entità principale responsabile della richiesta di autenticazione nella creazione della risorsa. Considera come funziona all'interno dell'ambiente DynamoDB:

  • Utilizzando le credenziali di root per creare una tabella, il tuo account rimane proprietario della risorsa.

  • Quando si crea un utente IAM e si concede all'utente l'autorizzazione a creare una tabella, l'account rimane il proprietario della risorsa.

  • Quando si crea un utente IAM e si concede all'utente, ea chiunque sia in grado di assumerne il ruolo, l'autorizzazione per creare una tabella, il proprio account rimane il proprietario della risorsa.

Gestisci l'accesso alle risorse

La gestione dell'accesso richiede principalmente attenzione a una politica dei permessi che descrive gli utenti e l'accesso alle risorse. Associate le policy a identità o risorse IAM. Tuttavia, DynamoDB supporta solo i criteri IAM / identità.

Le policy basate sull'identità (IAM) ti consentono di concedere i privilegi nei seguenti modi:

  • Associa autorizzazioni a utenti o gruppi.
  • Associa le autorizzazioni ai ruoli per le autorizzazioni per più account.

Altri AWS consentono policy basate sulle risorse. Queste politiche consentono l'accesso a cose come un bucket S3.

Elementi della politica

Le politiche definiscono azioni, effetti, risorse e principi; e concedere l'autorizzazione per eseguire queste operazioni.

Note - Le operazioni API possono richiedere autorizzazioni per più azioni.

Dai un'occhiata più da vicino ai seguenti elementi della politica:

  • Resource - Un ARN identifica questo.

  • Action - Le parole chiave identificano queste operazioni sulle risorse e indicano se consentire o negare.

  • Effect - Specifica l'effetto per una richiesta dell'utente per un'azione, ovvero consentire o negare con negazione come impostazione predefinita.

  • Principal - Identifica l'utente associato alla policy.

Condizioni

Nel concedere le autorizzazioni, è possibile specificare le condizioni per quando i criteri diventano attivi, ad esempio in una data particolare. Esprimi le condizioni con le chiavi di condizione, che includono chiavi a livello di sistema AWS e chiavi DynamoDB. Queste chiavi vengono discusse in dettaglio più avanti nel tutorial.

Autorizzazioni della console

Un utente richiede determinate autorizzazioni di base per utilizzare la console. Richiedono anche autorizzazioni per la console in altri servizi standard:

  • CloudWatch
  • Pipeline di dati
  • Gestione di identità e accessi
  • Servizio di notifica
  • Lambda

Se la policy IAM si rivela troppo limitata, l'utente non può utilizzare la console in modo efficace. Inoltre, non devi preoccuparti delle autorizzazioni utente per coloro che chiamano solo la CLI o l'API.

Criteri Iam di uso comune

AWS copre le operazioni comuni nelle autorizzazioni con policy gestite IAM autonome. Forniscono autorizzazioni chiave che ti consentono di evitare indagini approfondite su ciò che devi concedere.

Alcuni di loro sono i seguenti:

  • AmazonDynamoDBReadOnlyAccess - Fornisce accesso in sola lettura tramite la console.

  • AmazonDynamoDBFullAccess - Dà pieno accesso tramite la console.

  • AmazonDynamoDBFullAccesswithDataPipeline - Dà pieno accesso tramite la console e consente l'esportazione / importazione con Data Pipeline.

Ovviamente puoi anche creare politiche personalizzate.

Concessione di privilegi: utilizzo di Shell

Puoi concedere i permessi con la shell Javascript. Il seguente programma mostra una tipica politica delle autorizzazioni:

{ 
   "Version": "2016-05-22", 
   "Statement": [ 
      { 
         "Sid": "DescribeQueryScanToolsTable", 
         "Effect": "Deny", 
         
         "Action": [ 
            "dynamodb:DescribeTable", 
            "dynamodb:Query", 
            "dynamodb:Scan" 
         ], 
         "Resource": "arn:aws:dynamodb:us-west-2:account-id:table/Tools" 
      } 
   ] 
}

Puoi rivedere i tre esempi che sono i seguenti:

Block the user from executing any table action.

{ 
   "Version": "2016-05-23", 
   "Statement": [ 
      { 
         "Sid": "AllAPIActionsOnTools", 
         "Effect": "Deny", 
         "Action": "dynamodb:*", 
         "Resource": "arn:aws:dynamodb:us-west-2:155556789012:table/Tools" 
      } 
   ] 
}

Block access to a table and its indices.

{ 
   "Version": "2016-05-23", 
   "Statement": [ 
      { 
         "Sid": "AccessAllIndexesOnTools", 
         "Effect": "Deny", 
         "Action": [
            "dynamodb:*" 
         ], 
         "Resource": [ 
            "arn:aws:dynamodb:us-west-2:155556789012:table/Tools", 
            "arn:aws:dynamodb:us-west-2:155556789012:table/Tools/index/*" 
         ] 
      } 
   ] 
}

Block a user from making a reserved capacity offering purchase.

{ 
   "Version": "2016-05-23", 
   "Statement": [ 
      { 
         "Sid": "BlockReservedCapacityPurchases", 
         "Effect": "Deny", 
         "Action": "dynamodb:PurchaseReservedCapacityOfferings", 
         "Resource": "arn:aws:dynamodb:us-west-2:155556789012:*" 
      } 
   ] 
}

Concessione di privilegi: utilizzo della console GUI

È inoltre possibile utilizzare la console GUI per creare policy IAM. Per cominciare, scegliTablesdal pannello di navigazione. Nell'elenco delle tabelle, scegli la tabella di destinazione e segui questi passaggi.

Step 1 - Seleziona il file Access control tab.

Step 2- Selezionare il provider di identità, le azioni e gli attributi della politica. SelezionareCreate policy dopo aver inserito tutte le impostazioni.

Step 3 - Scegli Attach policy instructionse completare ogni passaggio richiesto per associare la policy al ruolo IAM appropriato.