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à.
Prerequisiti per l'integrazione di RDS SQL Server con S3
Prima di iniziare, trova o crea il bucket S3 che desideri utilizzare. Inoltre, aggiungi le autorizzazioni in modo che l'istanza RDS DB possa accedere al bucket S3. Per configurare questo accesso, crei sia una IAM policy che un ruolo. IAM
Per creare una IAM policy per l'accesso ad Amazon S3
-
Nella console di IAM gestione
, scegli Policies nel riquadro di navigazione. -
Creare una nuova policy e usare la scheda Visual editor (Editor visivo) per le seguenti fasi.
-
Per Service (Servizio), immettere
S3
e scegliere il servizio S3. -
Per Actions (Operazioni), scegliere le seguenti opzioni per concedere l'accesso richiesto dall'istanza database:
-
ListAllMyBuckets
– obbligatorio -
ListBucket
– obbligatorio -
GetBucketACL
– obbligatorio -
GetBucketLocation
– obbligatorio -
GetObject
– obbligatorio per il download dei file da S3 aD:\S3\
-
PutObject
– obbligatorio per il caricamento dei file daD:\S3\
a S3 -
ListMultipartUploadParts
– obbligatorio per il caricamento dei file daD:\S3\
a S3 -
AbortMultipartUpload
– obbligatorio per il caricamento dei file daD:\S3\
a S3
-
-
Per Resources (Risorse), le opzioni visualizzate dipendono dalle operazioni scelte nella fase precedente. Potrebbero essere visualizzate le opzioni per bucket, object (oggetto) o entrambi. Per ognuno di questi, aggiungi l'Amazon Resource Name appropriato (ARN).
Per bucket, aggiungi il ARN per il bucket che desideri utilizzare. Ad esempio, se il tuo bucket ha un nome
amzn-s3-demo-bucket
, imposta suARN.arn:aws:s3:::
amzn-s3-demo-bucket
Per oggetto, inserite il campo ARN per il bucket e scegliete una delle seguenti opzioni:
-
Per concedere l'accesso a tutti i file nel bucket specificato, selezionare Any (Qualsiasi) per Bucket name (Nome bucket) e Object name (Nome oggetto).
-
Per concedere l'accesso a file o cartelle specifici nel bucket, fornisci ARNs i bucket e gli oggetti specifici a cui desideri che il SQL Server acceda.
-
-
Seguire le istruzioni indicate nella console fino al termine della creazione della policy.
Le precedenti sono indicazioni generali per la creazione di una policy. Per istruzioni più dettagliate sulla creazione IAM di policy, consulta Creazione IAM di policy nella Guida per l'IAMutente.
Per creare un IAM ruolo che utilizzi la IAM politica della procedura precedente
-
Nella console IAM di gestione
, scegli Ruoli nel riquadro di navigazione. -
Crea un nuovo IAM ruolo e scegli le seguenti opzioni man mano che appaiono nella console:
-
AWS service
-
RDS
-
RDS— Aggiungi ruolo al database
Scegliere Next: Permissions (Successivo: Autorizzazioni) nella parte inferiore dello schermo.
-
-
Per le politiche di autorizzazione di Allach, inserisci il nome della IAM politica che hai creato in precedenza. Scegliere quindi la policy dall'elenco.
-
Seguire le istruzioni indicate nella console fino al termine della creazione del ruolo.
Le precedenti sono indicazioni generali per la configurazione di un ruolo. Se desideri istruzioni più dettagliate sulla creazione di ruoli, consulta i IAMruoli nella Guida per l'IAMutente.
Per concedere ad Amazon RDS l'accesso a un bucket Amazon S3, utilizza la seguente procedura:
-
Crea una IAM policy che garantisca RDS ad Amazon l'accesso a un bucket S3.
-
Crea un IAM ruolo che Amazon RDS possa assumere per tuo conto per accedere ai tuoi bucket S3.
Per ulteriori informazioni, consulta Creare un ruolo per delegare le autorizzazioni a un IAM utente nella Guida per l'utente. IAM
-
Allega la IAM policy che hai creato al IAM ruolo che hai creato.
Per creare la policy IAM
Includere le operazioni appropriate per garantire l'accesso richiesto dall'istanza database:
-
ListAllMyBuckets
– obbligatorio -
ListBucket
– obbligatorio -
GetBucketACL
– obbligatorio -
GetBucketLocation
– obbligatorio -
GetObject
– obbligatorio per il download dei file da S3 aD:\S3\
-
PutObject
– obbligatorio per il caricamento dei file daD:\S3\
a S3 -
ListMultipartUploadParts
– obbligatorio per il caricamento dei file daD:\S3\
a S3 -
AbortMultipartUpload
– obbligatorio per il caricamento dei file daD:\S3\
a S3
-
Il AWS CLI comando seguente crea una IAM politica denominata
rds-s3-integration-policy
con queste opzioni. Garantisce l'accesso a un bucket denominatoamzn-s3-demo-bucket
.In Linux, macOS, o Unix:
aws iam create-policy \ --policy-name
rds-s3-integration-policy
\ --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:ListAllMyBuckets", "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketACL", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket
" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket
/key_prefix
/*" } ] }'In Windows:
Assicurarsi di cambiare i caratteri di fine riga con quelli supportati dall'interfaccia in uso (
^
al posto di\
). Inoltre, in Windows, è necessario applicare a tutte le doppie virgolette il carattere di escape\
. Per evitare di dover evitare le virgolette contenute inJSON, potete invece salvarlo in un file e passarlo come parametro.Per prima cosa creare il file
policy.json
con la seguente policy di autorizzazione:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:ListAllMyBuckets", "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketACL", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::
amzn-s3-demo-bucket
" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket
/key_prefix
/*" } ] }Usare il comando seguente per creare la policy:
aws iam create-policy ^ --policy-name
rds-s3-integration-policy
^ --policy-document file://file_path
/assume_role_policy.json -
Dopo aver creato la policy, annota l'Amazon Resource Name (ARN) della policy. Ti serve ARN per un passaggio successivo.
Per creare il ruolo IAM
-
Il AWS CLI comando seguente crea il
rds-s3-integration-role
IAM ruolo per questo scopo.In Linux, macOS, oppure Unix:
aws iam create-role \ --role-name
rds-s3-integration-role
\ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }'In Windows:
Assicurarsi di cambiare i caratteri di fine riga con quelli supportati dall'interfaccia in uso (
^
al posto di\
). Inoltre, in Windows, è necessario applicare a tutte le doppie virgolette il carattere di escape\
. Per evitare di dover evitare le virgolette contenute inJSON, potete invece salvarlo in un file e passarlo come parametro.Per prima cosa creare il file
assume_role_policy.json
con la seguente policy:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "rds.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
Quindi utilizzate il seguente comando per creare il IAM ruolo:
aws iam create-role ^ --role-name
rds-s3-integration-role
^ --assume-role-policy-document file://file_path
/assume_role_policy.jsonEsempio di usare la chiave di contesto della condizione globale per creare il IAM ruolo
Si consiglia di utilizzare le chiavi di contesto delle condizioni globali
aws:SourceArn
eaws:SourceAccount
nelle policy basate sulle risorse per limitare le autorizzazioni del servizio a una risorsa specifica. Questo è il modo più efficace per proteggersi dal problema di deputy confused.Puoi usare le chiavi di contesto delle condizioni globali e avere il valore
aws:SourceArn
che contiene l'ID dell'account. In questo caso, il valoreaws:SourceAccount
e l'account nel valoreaws:SourceArn
deve utilizzare lo stesso ID account quando viene utilizzato nella stessa istruzione della policy.-
Utilizzare
aws:SourceArn
se si desidera un accesso cross-service per una singola risorsa. -
Utilizzare
aws:SourceAccount
se si desidera consentire l'associazione di qualsiasi risorsa in tale account all'uso cross-service.
Nella policy, assicurati di utilizzare la chiave di contesto della condizione
aws:SourceArn
globale con l'Amazon Resource Name completo (ARN) delle risorse che accedono al ruolo. Per l'integrazione con S3, assicurati di includere l'istanza DBARNs, come mostrato nell'esempio seguente.In Linux, macOS, oppure Unix:
aws iam create-role \ --role-name
rds-s3-integration-role
\ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceArn":"arn:aws:rds:Region
:my_account_ID
:db:db_instance_identifier
" } } } ] }'In Windows:
Aggiungi la chiave di contesto delle condizioni globali a
assume_role_policy.json
.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "rds.amazonaws.com" ] }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceArn":"arn:aws:rds:
Region
:my_account_ID
:db:db_instance_identifier
" } } } ] } -
Per associare la IAM politica al IAM ruolo
-
Il AWS CLI comando seguente associa la politica al ruolo denominato
rds-s3-integration-role
. Sostituiscila
con la politica ARN che hai annotato in un passaggio precedente.your-policy-arn
In Linux, macOS, oppure Unix:
aws iam attach-role-policy \ --policy-arn
your-policy-arn
\ --role-namerds-s3-integration-role
In Windows:
aws iam attach-role-policy ^ --policy-arn
your-policy-arn
^ --role-namerds-s3-integration-role