Prerequisiti per l'integrazione di RDS SQL Server con S3 - Amazon Relational Database Service

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
  1. Nella console di IAM gestione, scegli Policies nel riquadro di navigazione.

  2. Creare una nuova policy e usare la scheda Visual editor (Editor visivo) per le seguenti fasi.

  3. Per Service (Servizio), immettere S3 e scegliere il servizio S3.

  4. 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 a D:\S3\

    • PutObject – obbligatorio per il caricamento dei file da D:\S3\ a S3

    • ListMultipartUploadParts – obbligatorio per il caricamento dei file da D:\S3\ a S3

    • AbortMultipartUpload – obbligatorio per il caricamento dei file da D:\S3\ a S3

  5. 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.

  6. 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
  1. Nella console IAM di gestione, scegli Ruoli nel riquadro di navigazione.

  2. 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.

  3. Per le politiche di autorizzazione di Allach, inserisci il nome della IAM politica che hai creato in precedenza. Scegliere quindi la policy dall'elenco.

  4. 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:

  1. Crea una IAM policy che garantisca RDS ad Amazon l'accesso a un bucket S3.

  2. 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

  3. 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 a D:\S3\

  • PutObject – obbligatorio per il caricamento dei file da D:\S3\ a S3

  • ListMultipartUploadParts – obbligatorio per il caricamento dei file da D:\S3\ a S3

  • AbortMultipartUpload – obbligatorio per il caricamento dei file da D:\S3\ a S3

  1. Il AWS CLI comando seguente crea una IAM politica denominata rds-s3-integration-policy con queste opzioni. Garantisce l'accesso a un bucket denominato amzn-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
  2. 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.json
    Esempio 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 e aws: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 valore aws:SourceAccount e l'account nel valore aws: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 denominatords-s3-integration-role. Sostituiscila your-policy-arn con la politica ARN che hai annotato in un passaggio precedente.

    In Linux, macOS, oppure Unix:

    aws iam attach-role-policy \ --policy-arn your-policy-arn \ --role-name rds-s3-integration-role

    In Windows:

    aws iam attach-role-policy ^ --policy-arn your-policy-arn ^ --role-name rds-s3-integration-role