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à.
Concatenamento IAM dei ruoli in Amazon Redshift
Quando associ un ruolo al cluster, quest'ultimo può assumere quel ruolo per accedere ad Amazon S3, Amazon Athena AWS Glue AWS Lambda e per tuo conto. Se un ruolo collegato al cluster non ha accesso alle risorse necessarie, è possibile concatenare un altro ruolo, possibilmente appartenente a un altro account. Il cluster quindi può assumere temporaneamente il ruolo concatenato per accedere ai dati. Concatenando i ruoli è anche possibile concedere l'accesso a più account. Ogni ruolo nella catena assume il ruolo successivo nella catena, fino a quando il cluster non assume il ruolo alla fine della catena. Il numero massimo di IAM ruoli che puoi associare è soggetto a una quota. Per ulteriori informazioni, consulta la quota «IAMRuoli del cluster per Amazon Redshift per accedere ad altri AWS servizi» in. Quote per gli oggetti Amazon Redshift
Ad esempio, supponiamo che l'azienda A desideri accedere ai dati in un bucket Amazon S3 appartenente all'azienda B. La società A AWS crei un ruolo di servizio RoleA
denominato per Amazon Redshift e lo alleghi al proprio cluster. L'Azienda B crea un ruolo denominato RoleB
autorizzato ad accedere ai dati nel bucket dell'Azienda B. Per accedere ai dati nel bucket Company B, l'azienda A esegue un COPY comando utilizzando un parametro che concatena and. iam_role
RoleA
RoleB
Per tutta la durata dell'COPYoperazione, presuppone di accedere RoleA
temporaneamente RoleB
al bucket Amazon S3.
Per concatenare i ruoli, stabilisci una relazione di trust tra di essi. Un ruolo che assume un altro ruolo (ad esempio, RoleA
) deve avere una policy di autorizzazioni che gli permette di assumere il ruolo concatenato successivo (ad esempio, RoleB
). A sua volta, il ruolo che passa le autorizzazioni (RoleB
) deve avere una policy di trust che gli permette di passare le autorizzazioni al ruolo concatenato precedente (RoleA
). Per ulteriori informazioni, consulta Using IAM roles in the IAM User Guide.
Il primo ruolo nella catena deve essere un ruolo collegato al cluster. Il primo ruolo e ogni ruolo successivo che assume il ruolo seguente nella catena devono avere una policy che include un'istruzione specifica. Questa istruzione ha Allow
effetto sull'sts:AssumeRole
azione e sull'Amazon Resource Name (ARN) del ruolo successivo in un Resource
elemento. Nell'esempio, RoleA
ha la policy di autorizzazione seguente che gli permette di assumere RoleB
, di proprietà dell'account AWS
210987654321
.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1487639602000", "Effect": "Allow", "Action": [ "sts:AssumeRole" ], "Resource": "arn:aws:iam::210987654321:role/RoleB" } ] }
Un ruolo che passa a un altro ruolo deve stabilire una relazione di fiducia con il ruolo che assume il ruolo o con l' AWS account che possiede il ruolo. Nell'esempio, RoleB
ha la policy di trust seguente per stabilire una relazione di trust con RoleA
.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Principal": { "AWS": "arn:aws:iam::role/RoleA" } } ] }
La seguente politica di fiducia stabilisce una relazione di fiducia con il proprietario dell'accountRoleA
. AWS 123456789012
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Principal": { "AWS": "arn:aws:iam::123456789012:root" } } ] }
Nota
Per limitare l'autorizzazione del concatenamento dei ruoli a utenti specifici, puoi definire una condizione. Per ulteriori informazioni, consulta Limitazione dell'accesso ai ruoli IAM.
Quando si esegue un CREATE EXTERNAL SCHEMA comandoUNLOAD,COPY, o CREATE EXTERNALFUNCTION, si concatenano i ruoli includendo un elenco di ruoli ARNs separati da virgole nel parametro. iam_role
Di seguito è illustrata la sintassi per la concatenazione di ruoli nel parametro iam_role
.
unload ('select * from venue limit 10') to 's3://acmedata/redshift/venue_pipe_' IAM_ROLE 'arn:aws:iam::<
aws-account-id-1
>:role/<role-name-1
>[,arn:aws:iam::<aws-account-id-2
>:role/<role-name-2
>][,...]';
Nota
L'intera catena di ruoli è racchiusa tra virgolette singole e non deve contenere spazi.
Negli esempi seguenti, RoleA
è collegato al cluster che appartiene all'account AWS 123456789012
. RoleB
, che appartiene all'account 210987654321
, dispone dell'autorizzazione per accedere al bucket denominato s3://companyb/redshift/
. L'esempio seguente concatena RoleA
e inserisce RoleB
i UNLOAD dati nel bucket s3://companyb/redshift/.
unload ('select * from venue limit 10') to 's3://companyb/redshift/venue_pipe_' iam_role 'arn:aws:iam::123456789012:role/RoleA,arn:aws:iam::210987654321:role/RoleB';
L'esempio seguente utilizza un COPY comando per caricare i dati scaricati nell'esempio precedente.
copy venue from 's3://companyb/redshift/venue_pipe_' iam_role 'arn:aws:iam::123456789012:role/RoleA,arn:aws:iam::210987654321:role/RoleB';
Nell'esempio seguente, CREATE EXTERNAL SCHEMA utilizza ruoli concatenati per assumere il ruolo. RoleB
create external schema spectrumexample from data catalog database 'exampledb' region 'us-west-2' iam_role 'arn:aws:iam::123456789012:role/RoleA,arn:aws:iam::210987654321:role/RoleB';
Nell'esempio seguente, CREATE EXTERNAL FUNCTION utilizza ruoli concatenati per assumere il ruolo. RoleB
create external function lambda_example(varchar) returns varchar volatile lambda 'exampleLambdaFunction' iam_role 'arn:aws:iam::123456789012:role/RoleA,arn:aws:iam::210987654321:role/RoleB';