Come posso configurare un bucket Amazon S3 centrale per la registrazione di Gestione sessione da più account AWS?
Desidero configurare la registrazione centrale di Amazon Simple Storage Service (Amazon S3) per Gestione sessione, una funzionalità di AWS Systems Manager, nei miei account AWS.
Risoluzione
Configura le autorizzazioni
L'Agente Systems Manager (Agente SSM) utilizza lo stesso ruolo AWS Identity and Access Management (AWS IAM) per attivare e caricare i log su Amazon S3.
Puoi utilizzare uno dei seguenti ruoli IAM:
- Un profilo di istanza IAM collegato a un'istanza Amazon Elastic Compute Cloud (Amazon EC2).
- Un ruolo IAM configurato per la configurazione predefinita di gestione degli host.
Per concedere le autorizzazioni, utilizza le seguenti policy:
- L'account AWS che possiede il principale IAM deve utilizzare una policy IAM per concedere le autorizzazioni Amazon S3.
- Il proprietario del bucket S3 deve utilizzare la policy delle chiavi del Servizio AWS di gestione delle chiavi (AWS KMS) o la lista di controllo degli accessi (ACL) per consentire l'accesso a tutti gli account.
- Se il bucket è crittografato con una chiave AWS KMS, devi utilizzare una policy IAM.
- Devi collegare la policy IAM al ruolo che concede le autorizzazioni dell'Agente SSM.
- Devi utilizzare una policy delle chiavi KMS per concedere l'accesso alla chiave AWS KMS utilizzata per crittografare il bucket.
- Devi utilizzare la policy gestita da AWS AmazonSSMManagedInstanceCore per accedere alle funzionalità di base di Systems Manager.
Le seguenti autorizzazioni sono necessarie per consentire a Gestione sessione di caricare i log nel bucket S3:
- Le autorizzazioni s3:PutObject e s3:PutObjectAcl per caricare oggetti crittografati nel bucket S3.
- Le autorizzazioni kms:Decrypt e kms:GenerateDataKey per accedere alle chiavi AWS KMS.
- L'autorizzazione aws:PrincipalOrgID: o-xxxxxxx per limitare l'accesso ai principali che non corrispondono all'ID dell'organizzazione in AWS Organizations.
Verifica la connettività ai seguenti endpoint:
- Endpoint di Amazon S3: com.amazonaws.region.s3
- Endpoint del servizio AWS KMS: com.amazonaws.region.kms
- Endpoint di Systems Manager: com.amazonaws.region.ssm
- Endpoint di Gestione sessione di Systems Manager: com.amazonaws.region.ssmmessages
- Endpoint di Amazon EC2: com.amazonaws.region.ec2
Crea chiavi AWS KMS e policy della chiave
Crea chiavi AWS KMS per crittografare il bucket S3 e i log di Gestione sessione.
Puoi creare una chiave per crittografare sia i log di Gestione sessione che la crittografia AWS KMS, oppure creare chiavi distinte.
Per ogni chiave, aggiungi la seguente istruzione chiave alla policy AWS KMS per consentire a Gestione sessione di crittografare i log:
{ "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalOrgID": "o-xxxxxxx" } } }
Nota: sostituisci aws:PrincipalOrgID con l'ID della tua organizzazione e Principal con l'ARN del tuo ruolo IAM.
Crea il bucket S3 e la policy del bucket
Crea un bucket S3 per archiviare i log di Gestione sessione. Per ulteriori informazioni, consulta Creazione di un bucket generico e Registrazione dei dati delle sessioni mediante Amazon S3 (console).
Per consentire l'accesso ai log, aggiungi la seguente policy delle risorse al bucket S3:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "s3:GetEncryptionConfiguration", "Resource": "arn:aws:s3:::customer_session_manager_logging_bucket", "Condition": { "StringEquals": { "aws:PrincipalOrgID": "o-xxxxxxxxxxxxxx" } } }, { "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": [ "s3:PutObject", "s3:PutObjectAcl" ], "Resource": "arn:aws:s3:::customer_session_manager_logging_bucket/*", "Condition": { "StringEquals": { "aws:PrincipalOrgID": "o-xxxxxxxxxxxxx" } } } ] }
Per ulteriori informazioni sulle autorizzazioni di accesso ai log, consulta Autorizzazioni per la distribuzione dei registri.
Crea una policy IAM per accedere al bucket S3 e alle chiavi AWS KMS
Crea una policy IAM che conceda le autorizzazioni per accedere al bucket S3 e alle chiavi AWS KMS.
Collega il seguente esempio di policy al profilo dell'istanza utilizzato dagli account per connetterti al bucket S3:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PutObjectsBucket", "Action": [ "s3:PutObject", "s3:PutObjectAcl" ], "Effect": "Allow", "Resource": "arn:aws:s3:::customer_session_manager_logging_bucket/*" }, { "Sid": "ListBucketAndEncryptionConfig", "Action": [ "s3:GetEncryptionConfiguration" ], "Effect": "Allow", "Resource": "arn:aws:s3:::customer_session_manager_logging_bucket" }, { "Sid": "S3KMSSessionManagerKMS", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey*" ], "Resource": [ "arn:aws:kms:us-east-1:ACCOUNTId:key/YOUR-KMS-FOR-SessionManagerEncryption", "arn:aws:kms:us-east-1:ACCOUNTID:key/YOUR-KMS-FOR-S3BucketEncryption" ] } ] }
Nota: puoi utilizzare una policy inline o una policy gestita dal cliente. Per ulteriori informazioni, consultaUtilizzo delle politiche IAM con AWS KMS.
(Facoltativo) Configura i profili shell di Gestione sessione per i log
Per creare un profilo shell personalizzato, crea un file JSON, rimuovi il contenuto e sostituiscilo con i seguenti valori:
{ "schemaVersion": "1.0", "description": "Document to hold regional settings for Session Manager", "sessionType": "Standard_Stream", "inputs": { "s3BucketName": "customer_session_manager_logging_bucket", "s3KeyPrefix": "", "s3EncryptionEnabled": true, "cloudWatchLogGroupName": "", "cloudWatchEncryptionEnabled": false, "cloudWatchStreamingEnabled": false, "kmsKeyId": "arn:aws:kms:REGION:ACCOUNTID:key/YOUR-KMS-FOR-SessionManagerEncryption", "runAsDefaultUser": "", "idleSessionTimeout": "20", "maxSessionDuration": "", "shellProfile": {"windows": "", "linux": ""} } }
Nota: sostituisci customer_session_manager_logging_bucket con il nome del tuo bucket e YOUR-KMS-FOR-SessionManagerEncryption con la tua chiave designata per Gestione sessione.
Esegui questo comando per salvare il file come documento predefinito di Gestione sessione con un nome come SessionManagerRunShell.json:
aws ssm update-document --name "SSM-SessionManagerRunShell" \ --content "file://SessionManagerRunShell.json" \ --document-version "\$LATEST"
Verifica la configurazione della registrazione di Gestione sessione
Apri la console Amazon S3, quindi accedi al bucket di registrazione. Nelle impostazioni Bucket, verifica che la crittografia del bucket sia attiva. Inoltre, verifica che l'ARN della chiave AWS KMS corrisponda alla chiave 1 per assicurarti che Gestione sessione utilizzi la chiave di crittografia corretta.
Per controllare le preferenze di Gestione sessione, completa i seguenti passaggi:
- Apri la console Session Manager.
- Seleziona la Regione AWS.
- Verifica di aver attivato la crittografia.
- Inserisci l'ARN della chiave 1.
- Verifica di aver configurato il bucket S3 corretto.
Verifica che nel bucket vengano generati log
Per generare log, utilizza Gestione sessione in un altro account.
Completa i seguenti passaggi:
- Utilizza Session Manager per connetterti a un'istanza.
- Seleziona la Regione.
- Verifica che la sessione si connetta e mostri "This Session is Encrypted using AWS KMS".
- Inserisci le voci di prova per generare i log, quindi chiusi la sessione.
Nota: al termine della sessione, la visualizzazione dei log può richiedere almeno 30 secondi. Per ulteriori informazioni, consulta Registrazione delle richieste con la registrazione dell'accesso al server.
Informazioni correlate
Protezione dei dati con crittografia lato server
Operazioni, risorse e chiavi di condizione per Amazon S3
- Argomenti
- Management & Governance
- Lingua
- Italiano
