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à.
Configurazione delle autorizzazioni IAM
Amazon Redshift fornisce la policy gestita AmazonRedshiftDataFullAccess
. Questa policy fornisce accesso completo alle operazioni API dati di Amazon Redshift. Questa policy consente inoltre l'accesso mirato a specifiche operazioni di Amazon Redshift AWS Secrets Manager e API IAM necessarie per autenticare e accedere a un cluster Amazon Redshift o a un gruppo di lavoro Serverless Redshift.
È possibile anche creare una policy IAM personalizzata che consente l'accesso a risorse specifiche. Per creare la policy, utilizzare la policy AmazonRedshiftDataFullAccess
come modello di partenza. Dopo aver creato la policy, aggiungerla a ciascun utente che richiede l'accesso all'API dati.
Considera i seguenti requisiti della policy IAM associata all'utente:
-
Se la utilizzi AWS Secrets Manager per l'autenticazione, conferma che la policy consenta l'utilizzo dell'
secretsmanager:GetSecretValue
azione per recuperare il segreto etichettato con la chiave.RedshiftDataFullAccess
-
Se per l'autenticazione in un cluster vengono utilizzate credenziali temporanee, confermare che la policy consente l'uso dell'operazione
redshift:GetClusterCredentials
al nome utente del databaseredshift_data_api_user
per qualsiasi database nel cluster. Questo nome utente deve essere già stato creato nel database. -
Se utilizzi credenziali temporanee per eseguire l'autenticazione in un gruppo di lavoro serverless, verifica che la policy consenta l'uso dell'operazione
redshift-serverless:GetCredentials
per richiamare il gruppo di lavoro taggato con la chiaveRedshiftDataFullAccess
. L'utente del database viene mappato 1:1 all'identità di origine AWS Identity and Access Management (IAM). Ad esempio, l'utente sample_user è mappato all'utente del databaseIAM:sample_user
e il ruolo IAM sample_role è mappato aIAMR:sample_role
. Per ulteriori informazioni sulle diverse identità IAM, consulta Identità IAM (utenti, gruppi di utenti e ruoli) nella Guida per l'utente IAM. -
L'azione IAM
redshift-data:GetStatementResult
consente l'accesso a entrambe le operazioniGetStatementResult
e all'GetStatementResultV2
API.
I seguenti collegamenti forniscono ulteriori informazioni sulla AWS Identity and Access Management IAM User Guide.
-
Per ulteriori informazioni sulla creazione dei ruoli IAM, consultare Creazione di ruoli IAM.
-
Per informazioni sulla creazione di una policy IAM, consultare Creazione di policy IAM.
-
Per informazioni sull'aggiunta di una policy IAM a un utente, consultare Aggiunta e rimozione di autorizzazioni per identità IAM.
Esegui una query su un cluster di proprietà di un altro account
Per eseguire una query su un cluster di proprietà di un altro account, l'account proprietario deve fornire un ruolo IAM che l'API dati può assumere nell'account chiamante. Si supponga, ad esempio, che l'Account B sia proprietario di un cluster a cui l'Account A deve accedere. L'account B può allegare la policy AWS gestita AmazonRedshiftDataFullAccess
al ruolo IAM dell'account B. Quindi l'Account B considera attendibile l'Account A utilizzando una policy di attendibilità come la seguente:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::
accountID-of-account-A
:role/someRoleA" ] }, "Action": "sts:AssumeRole" } ] }
Infine, il ruolo IAM dell'Account A deve essere in grado di assumere il ruolo IAM dell'Account B.
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::accountID-of-account-B:role/someRoleB" } }
Specificare un ruolo IAM che limiti le risorse ai gruppi di lavoro Serverless Redshift e ai cluster Amazon Redshift in un Account AWS
Puoi specificare la risorsa ARNs nella tua policy basata sull'identità per controllare l'accesso ai gruppi di lavoro Serverless Redshift e ai cluster Amazon Redshift in un unico. Account AWS Questo esempio mostra come è possibile creare una policy che consenta l'accesso all'API Data solo per il gruppo di lavoro e i cluster nell'area specificata. Account AWS
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "redshift-data:CancelStatement", "redshift-data:DescribeStatement", "redshift-data:GetStatementResult", "redshift-data:ListStatements" ], "Resource": "*" }, { "Effect": "Allow", "Action": "redshift-data:*", "Resource": [ "arn:
arn-partition
:redshift-serverless:*:Account AWS
:workgroup/*", "arn:arn-partition
:redshift:*:Account AWS
:cluster:*" ] } ] }
Configura una policy IAM che limiti l'accesso alle informazioni delle istruzioni SQL solo al proprietario dell'istruzione
Per impostazione predefinita, Amazon Redshift Data API considera il ruolo IAM utilizzato durante la chiamata ExecuteStatement
e BatchExecuteStatement
come proprietario dell'istruzione SQL. Chiunque sia autorizzato ad assumere il ruolo è in grado di accedere alle informazioni sull'istruzione SQL, compresi i relativi risultati. Per limitare l'accesso alle informazioni sull'istruzione SQL a una sessione di ruolo IAM con un particolare proprietario, aggiungi una condizioneredshift-data:statement-owner-iam-userid:
"${aws:userid}"
. La seguente politica IAM limita l'accesso.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"redshift-data:CancelStatement",
"redshift-data:DescribeStatement",
"redshift-data:GetStatementResult",
"redshift-data:ListStatements"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"redshift-data:statement-owner-iam-userid": "${aws:userid}"
}
}
}
]
}
Puoi usare la condizione statement-owner-iam-userid
conCancelStatement
, DescribeStatement
GetStatementResult
, eListStatements
. Per ulteriori informazioni, consulta Actions defined by Amazon Redshift Data API.
Configura una policy IAM che limiti l'accesso ai risultati SQL solo al proprietario della sessione
Per impostazione predefinita, Amazon Redshift Data API considera il ruolo IAM utilizzato durante la chiamata ExecuteStatement
e BatchExecuteStatement
come proprietario della sessione del database che esegue l'istruzione SQL. Chiunque sia autorizzato ad assumere il ruolo è in grado di inviare domande alla sessione del database. Per limitare l'accesso alla sessione a una sessione di ruolo IAM con un particolare proprietario, aggiungi una condizione redshift-data:session-owner-iam-userid: "${aws:userid}"
. La seguente politica IAM limita l'accesso.
La seguente policy IAM consente solo al proprietario della sessione di ottenere i risultati delle istruzioni. La condizione session-owner-iam-userid
viene utilizzata per limitare l'accesso alle risorse al valore specificatouserid
.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "redshift-data:ExecuteStatement", "redshift-data:BatchExecuteStatement" ], "Resource": "*", "Condition": { "StringEquals": { "redshift-data:session-owner-iam-userid": "${aws:userid}" } } } ] }
È possibile utilizzare la condizione session-owner-iam-userid
con ExecuteStatement
eBatchExecuteStatement
. Per ulteriori informazioni, consulta Actions defined by Amazon Redshift Data API.