Prerequisiti per l'integrazione di RDS for 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 for SQL Server con S3

Prima di iniziare, trova o crea il bucket S3 che desideri utilizzare. Quindi, aggiungi le autorizzazioni in modo che l'istanza database RDS possa accedere al bucket S3. Per configurare questo accesso, crea una policy e un ruolo IAM.

Per creare una policy IAM per accedere ad Amazon S3
  1. Nel riquadro di navigazione della console di gestione IAM, scegliere Policies (Policy).

  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 ognuna di queste opzioni, aggiungere l'Amazon Resource Name (ARN) appropriato.

    Per bucket, aggiungere l'ARN per il bucket che si desidera utilizzare. Ad esempio, se il bucket è denominato amzn-s3-demo-bucket, impostare l'ARN su arn:aws:s3:::amzn-s3-demo-bucket.

    Per object (oggetto), immettere l'ARN per il bucket e scegliere una delle opzioni seguenti:

    • 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 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 delle policy IAM, consultare Creazione di policy IAM nella Guida per l'utente di IAM.

Per creare un ruolo IAM che utilizza la policy IAM della procedura precedente
  1. Nel riquadro di navigazione della console di gestione IAM, scegliere Roles (Ruoli).

  2. Creare un nuovo ruolo IAM e scegliere le seguenti opzioni quando vengono visualizzate nella console:

    • AWS service

    • RDS

    • RDS – Add Role to Database (RDS – Aggiungi ruolo al database)

    Scegliere Next: Permissions (Successivo: Autorizzazioni) nella parte inferiore dello schermo.

  3. Per Attach permissions policies (Collega policy di autorizzazioni), immettere il nome della policy IAM precedentemente creata. 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. Per istruzioni più dettagliate sulla creazione dei ruoli, consultare Ruoli IAM nella Guida per l'utente di IAM.

Per concedere ad Amazon RDS l'accesso a un bucket Amazon S3, utilizza la seguente procedura:

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

  2. Creare un ruolo IAM che Amazon RDS può assumere per conto dell'utente per accedere ai bucket S3.

    Per ulteriori informazioni, consulta la pagina relativa alla creazione di un ruolo per delegare le autorizzazioni a un utente IAM nella Guida per l'utente IAM.

  3. Collegare la policy IAM al ruolo IAM creato.

Co,e 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 policy IAM denominata rds-s3-integration-policy con queste opzioni. Concede l'accesso a un bucket denominato amzn-s3-demo-bucket.

    Per LinuxmacOS, oUnix:

    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/*" } ] }'

    Per 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 l'uso del carattere di escape per le virgolette in JSON, è possibile salvarlo in un file e passarlo come parametro.

    Per prima cosa creare il file policy.json con la seguente policy di autorizzazione:

    JSON
    { "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, annotarne l'Amazon Resource Name (ARN). L'ARN sarà necessario in una fase successiva.

Per creare il ruolo IAM
  • Il AWS CLI comando seguente crea il ruolo rds-s3-integration-role IAM per questo scopo.

    Per LinuxmacOS, oUnix:

    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" } ] }'

    Per 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 l'uso del carattere di escape per le virgolette in JSON, è possibile salvarlo in un file e passarlo come parametro.

    Per prima cosa creare il file assume_role_policy.json con la seguente policy:

    JSON
    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "rds.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }

    Usare il comando seguente per creare il ruolo IAM:

    aws iam create-role ^ --role-name rds-s3-integration-role ^ --assume-role-policy-document file://file_path/assume_role_policy.json
    Esempio di utilizzare la chiave del contesto delle condizioni globale per creare il ruolo IAM

    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 globale aws:SourceArn con l'Amazon Resource Name (ARN) completo delle risorse che accedono al ruolo. Per l'integrazione con S3, assicurati di includere l'istanza DB ARNs, come mostrato nell'esempio seguente.

    Per LinuxmacOS, oUnix:

    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" } } } ] }'

    Per Windows:

    Aggiungi la chiave di contesto delle condizioni globali a assume_role_policy.json.

    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 allegare la policy IAM al ruolo IAM
  • Il AWS CLI comando seguente associa la policy al ruolo denominatords-s3-integration-role. Sostituire your-policy-arn con l'ARN della policy annotato nel passaggio precedente.

    Per LinuxmacOS, oUnix:

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

    Per Windows:

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