Condivisione di uno snapshot - Amazon Redshift

Amazon Redshift non supporterà più la creazione di nuove UDF Python a partire dal 1º novembre 2025. Se desideri utilizzare le UDF Python, creale prima di tale data. Le UDF Python esistenti continueranno a funzionare normalmente. Per ulteriori informazioni, consulta il post del blog.

Condivisione di uno snapshot

È possibile condividere uno snapshot manuale esistente con altri account cliente AWS autorizzando l'accesso allo snapshot. Puoi autorizzare fino a 20 account per ogni snapshot e fino a 100 per ogni chiave AWS Key Management Service (AWS KMS). Ciò significa che se si hanno 10 snapshot crittografati con una singola chiave KMS, sarà possibile autorizzare 10 account AWS per ripristinare ogni snapshot o altre combinazioni fino a raggiungere 100 account, senza superare 20 account per ogni snapshot. Una persona connessa come utente in uno degli account autorizzati può quindi descrivere lo snapshot o ripristinarlo per creare un nuovo cluster Amazon Redshift nel proprio account. Se, ad esempio, usi account cliente AWS separati per produzione e test, un utente può accedere usando l'account di produzione e condividere uno snapshot con gli utenti nell'account di test. Una persona connessa come utente dell'account di test può quindi ripristinare lo snapshot per creare un nuovo cluster di proprietà dell'account di test a scopo di test o diagnostica.

Uno snapshot manuale rimane permanentemente di proprietà dell'account cliente AWS con cui è stato creato. Solo gli utenti che fanno parte dell'account proprietario dello snapshot possono autorizzare altri account ad accedere allo snapshot oppure revocare le autorizzazioni. Gli utenti negli account autorizzati possono solo descrivere o ripristinare gli snapshot condivisi con loro, ma non possono copiare o eliminare tali snapshot. Un'autorizzazione rimane valida fino a quando il proprietario dello snapshot non la revoca. Se un'autorizzazione viene revocata, l'utente autorizzato in precedenza perde la visibilità dello snapshot e non può avviare nuove operazioni che fanno riferimento allo snapshot. Se l'account sta ripristinando lo snapshot quando l'accesso viene revocato, il ripristino viene completato. Non è possibile eliminare uno snapshot con autorizzazioni attive. È prima necessario revocare tutte le autorizzazioni.

AWSGli account cliente sono sempre autorizzati ad accedere agli snapshot di proprietà dell'account. I tentativi di autorizzare o revocare l'accesso per l'account del proprietario causano la generazione di un errore. Non è possibile ripristinare o descrivere uno snapshot di proprietà di un account cliente AWS non attivo.

Dopo che è stato autorizzato l'accesso a un account cliente AWS, nessun utente in tale account può eseguire operazioni sullo snapshot, a meno che non disponga di policy che permettono di farlo.

  • Gli utenti nell'account del proprietario dello snapshot possono autorizzare e revocare l'accesso a uno snapshot solo se dispongono di un ruolo con una policy IAM che permetta loro di eseguire queste operazioni con una specifica delle risorse che include lo snapshot. La policy seguente permette, ad esempio, a un utente o un ruolo nell'account AWS 012345678912 di autorizzare altri account ad accedere a uno snapshot denominato my-snapshot20130829:

    JSON
    { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "redshift:AuthorizeSnapshotAccess", "redshift:RevokeSnapshotAccess" ], "Resource":[ "arn:aws:redshift:us-east-1:012345678912:snapshot:*/my-snapshot20130829" ] } ] }
  • Gli utenti in un account AWS con cui è stato condiviso uno snapshot non possono eseguire operazioni sullo snapshot a meno che non dispongano delle autorizzazioni che permettono tali operazioni. A tale scopo, puoi assegnare la policy a un ruolo e quindi assumerlo.

    • Per elencare o descrivere uno snapshot, è necessaria una policy IAM che permette l'operazione DescribeClusterSnapshots. Il codice seguente mostra un esempio:

      JSON
      { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "redshift:DescribeClusterSnapshots" ], "Resource":[ "*" ] } ] }
    • Per ripristinare uno snapshot, un utente deve disporre di un ruolo con una policy IAM che permetta l'operazione RestoreFromClusterSnapshot e che includa un elemento di risorsa che comprende sia il cluster che sta cercando di creare che lo snapshot. Se, ad esempio, un utente in un account 012345678912 ha condiviso lo snapshot my-snapshot20130829 con l'account 219876543210, per creare un cluster ripristinando lo snapshot, un utente nell'account 219876543210 deve assumere un ruolo con una policy come la seguente:

      JSON
      { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "redshift:RestoreFromClusterSnapshot" ], "Resource":[ "arn:aws:redshift:us-east-1:012345678912:snapshot:*/my-snapshot20130829", "arn:aws:redshift:us-east-1:219876543210:cluster:from-another-account" ] } ] }
    • Quando l'accesso a uno snapshot viene revocato da un account AWS, nessun utente in tale account può accedere allo snapshot. Ciò accade anche se gli account hanno a disposizione policy IAM che permettono operazioni sulla risorsa snapshot precedentemente condivisa.

Condivisione di uno snapshot di un cluster tramite la console

Nella console puoi autorizzare altri utenti ad accedere a uno snapshot manuale personale e successivamente puoi revocare loro l’accesso quando non è più necessario.

Per condividere uno snapshot con un altro account
  1. Accedere alla Console di gestione AWS e aprire la console Amazon Redshift all'indirizzo https://console.aws.amazon.com/redshiftv2/.

  2. Dal menu di navigazione, scegliere Clusters (Cluster), Snapshots (Snapshot), quindi scegliere lo snapshot manuale da condividere.

  3. Alla voce Actions (Operazioni), scegli Manual snapshot settings (Impostazioni snapshot manuale) per visualizzare le proprietà dello snapshot manuale.

  4. Inserisci il o gli account con cui effettuare la condivisione nella sezione Manage access (Gestisci accesso), quindi scegli Save (Salva).

Considerazioni sulla sicurezza per la condivisione di snapshot crittografati

Quando si fornisce l'accesso a uno snapshot crittografato, Redshift richiede che la chiave AWS KMS gestita dal cliente utilizzata per creare lo snapshot venga condivisa con l'account o gli account che eseguono il ripristino. Se la chiave non è condivisa, il tentativo di ripristino dello snapshot genera un errore di accesso negato. L'account di ricezione non necessita di autorizzazioni aggiuntive per ripristinare uno snapshot condiviso. Quando si autorizza l'accesso allo snapshot e si condivide la chiave, l'identità che autorizza l'accesso deve disporre delle autorizzazioni kms:DescribeKey sulla chiave usata per crittografare lo snapshot. Tale autorizzazione è descritta in maggiore dettaglio in autorizzazioni AWS KMS. Per ulteriori informazioni, consulta DescribeKey nella documentazione di riferimento delle API di Amazon Redshift.

La policy della chiave gestita dal cliente può essere aggiornata a livello di programmazione o sulla console AWS Key Management Service.

Nota

Se utilizzi una chiave KMS predefinita, non devi agire o modificare nulla in AWS KMS per condividere uno snapshot.

Consentire l'accesso alla chiave AWS KMS per uno snapshot crittografato

Per condividere la chiave gestita dal cliente AWS KMS per uno snapshot crittografato, aggiornare la policy di chiavi completando le seguenti operazioni:

  1. Aggiornare la policy della chiave KMS con l'Amazon Resource Name (ARN) dell'account AWS con cui si sta eseguendo la condivisione come Principal nella policy di chiave KMS.

  2. Consentire l'operazione kms:Decrypt.

Nel seguente esempio di policy di chiavi, l'utente 111122223333 è il proprietario della chiave KMS mentre l'utente 444455556666 è l'account con cui viene condivisa la chiave. Questa policy della chiave fornisce all'account AWS l'accesso alla chiave KMS includendo l'ARN per l'identità dell'account AWS root per l'utente 444455556666 come Principal per la policy e consentendo l'operazione kms:Decrypt.

JSON
{ "Id": "key-policy-1", "Version":"2012-10-17", "Statement": [ { "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:user/KeyUser", "arn:aws:iam::444455556666:root" ] }, "Action": [ "kms:Decrypt" ], "Resource": "*" } ] }

Dopo aver concesso l'accesso alla chiave KMS gestita dal cliente, l'account che ripristina lo snapshot crittografato deve creare un ruolo AWS Identity and Access Management (IAM) o un utente, se non ne è già disponibile uno. Inoltre, tale account AWS deve anche allegare una policy IAM a tale ruolo o utente IAM che consenta loro di copiare uno snapshot del database crittografato utilizzando la chiave KMS.

Per ulteriori informazioni su come concedere l'accesso a una chiave AWS KMS, consultare Consentire agli utenti in altri account di utilizzare una chiave KMS nella Guida per gli sviluppatori di AWS Key Management Service.

Per una panoramica delle policy di chiave, consultare Come Amazon Redshift utilizza AWS KMS.