Applicazione di un controllo delle autorizzazioni del documento di sessione per l'AWS CLI - AWS Systems Manager

Applicazione di un controllo delle autorizzazioni del documento di sessione per l'AWS CLI

Quando configuri Session Manager per il tuo account, il sistema crea un documento SSM di tipo SSM-SessionManagerRunShell. Questo documento archivia le preferenze di sessione, ad esempio se i dati della sessione vengono salvati in un bucket Amazon Simple Storage Service (Amazon S3) o gruppo di registri Amazon CloudWatch Logs, se i dati della sessione sono crittografati utilizzando AWS Key Management Service (AWS KMS) e se il supporto Run As è abilitato per le sessioni. Di seguito è riportato un esempio.

{ "schemaVersion": "1.0", "description": "Document to hold regional settings for Session Manager", "sessionType": "Standard_Stream", "inputs": { "s3BucketName": "doc-example-bucket", "s3KeyPrefix": "BucketPrefix", "s3EncryptionEnabled": true, "cloudWatchLogGroupName": "LogGroupName", "cloudWatchEncryptionEnabled": true, "kmsKeyId": "kms-key", "runAsEnabled": true, "runAsDefaultUser": "RunAsUser" } }

Per impostazione predefinita, se un utente nel proprio account dispone dell'autorizzazione nella policy utente AWS Identity and Access Management (IAM) per avviare sessioni, l'utente ha accesso al documento SSM SSM-SessionManagerRunShell. Ciò significa che quando usa la AWS CLI per eseguire il comando start-session e non specifica un documento nell'opzione --document-name, il sistema utilizza SSM-SessionManagerRunShell e avvia la sessione. La sessione viene avviata anche se la policy IAM dell'utente non concede l'autorizzazione esplicita per accedere al documento SSM-SessionManagerRunShell.

Ad esempio, il comando seguente non specifica un documento di sessione.

aws ssm start-session \ --target i-02573cafcfEXAMPLE

L'esempio seguente specifica il documento di sessione Session Manager di default.

aws ssm start-session \ --document-name SSM-SessionManagerRunShell \ --target i-02573cafcfEXAMPLE

Per limitare l'accesso al documento di sessione di default o a qualsiasi documento di sessione, è possibile aggiungere un elemento di condizione alla policy IAM dell'utente che convalida se l'utente ha accesso esplicito a un documento di sessione. Quando viene applicata questa condizione, l'utente deve specificare un valore per l'opzione --document-name del comando AWS CLI start-session. Questo valore è il documento di sessione Session Manager di default o un documento di sessione personalizzato che è stato creato. L'elemento di condizione seguente, se aggiunto all'operazione ssm:StartSession nella policy IAM, esegue il controllo dell'accesso al documento di sessione.

"Condition": { "BoolIfExists": { "ssm:SessionDocumentAccessCheck": "true" } }

Con questo elemento di condizione impostato su true, l'accesso esplicito a un documento di sessione deve essere concesso nella policy IAM affinché l'utente possa avviare una sessione. Per garantire che l'elemento condizione sia applicato, deve essere incluso in tutte le istruzioni della policy che consentono l'operazione ssm:StartSession. Di seguito è riportato un esempio.

{ "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ec2:us-west-2:123456789012:instance/i-02573cafcfEXAMPLE", "arn:aws:ssm:us-west-2:123456789012:document/SSM-SessionManagerRunShell" ] }

Se il l'elemento di condizione SessionDocumentAccessCheck è impostato su false, non influenzerà la valutazione della policy IAM. Ciò significa che se l'elemento di condizione SessionDocumentAccessCheck è impostato su false e si specifica il nome di un documento nella Resource, è necessario fornire il nome del documento specificato all'avvio di una sessione. Se si specifica un nome di documento diverso all'avvio di una sessione, la richiesta non va a buon fine.

Se l'elemento di condizione SessionDocumentAccessCheck è impostato su false e non si specifica il nome di un documento nella Resource, non è necessario fornire il nome di un documento all'avvio di una sessione. Per impostazione predefinita, il documento SSM-SessionManagerRunShell viene utilizzato nella richiesta.

Per un esempio di come specificare un documento di sessione Session Manager in una policy IAM, consulta Policy di avvio rapido per utenti finali per Session Manager.

Altri scenari

L'uso del documento di sessione SSM-SessionManagerRunShell predefinito è il solo caso in cui un nome documento può essere omesso dal comando start-session della CLI. In altri casi, l'utente deve specificare un valore per l'opzione --document-name del comando AWS CLI start-session. Il sistema controlla se l'utente ha accesso esplicito al documento di sessione specificato.

Ad esempio, se un utente specifica il nome di un documento di sessione personalizzato creato, la policy IAM dell'utente deve concedere l'autorizzazione per accedere al documento.

Se un utente esegue un comando per avviare una sessione mediante SSH, la policy dell'utente deve concedere l'accesso al documento di sessione AWS-StartSSHSession.

Nota

Per avviare una sessione con SSH, le fasi di configurazione devono essere completate sul nodo gestito di destinazione e sul computer locale dell'utente. Per informazioni, consulta (Facoltativo) Abilitare e controllare le autorizzazioni per le connessioni SSH tramite Session Manager.