Policy IAM di esempio per Session Manager - AWS Systems Manager

Policy IAM di esempio per Session Manager

Utilizza gli esempi in questa sezione per creare policy (IAM) AWS Identity and Access Management che forniscono le autorizzazioni più comuni necessarie per l'accesso a Session Manager.

Nota

Puoi inoltre utilizzare una policy AWS KMS key per controllare quali entità IAM (utenti o ruoli) e Account AWS possono accedere alla chiave KMS. Per ulteriori informazioni, consulta Panoramica della gestione dell'accesso alle risorse AWS KMS e Utilizzo di policy delle chiavi in AWS KMS nella Guida per lo sviluppatore di AWS Key Management Service.

Policy di avvio rapido per utenti finali per Session Manager

Utilizzare gli esempi seguenti per creare policy IAM per l'utente finale per Session Manager.

È possibile creare una policy che consenta agli utenti di avviare sessioni solo dalla console Session Manager e AWS Command Line Interface (AWS CLI), solo dalla console di Amazon Elastic Compute Cloud (Amazon EC2) o da tutte e tre.

Queste policy offrono agli utenti finali la possibilità di avviare una sessione per una determinato nodo gestito nonché la possibilità di terminare solo le proprie sessioni. Per alcuni esempi di personalizzazioni che potresti applicare alla policy, fai riferimento a Altre policy IAM di esempio per Session Manager.

Nei seguenti criteri di esempio, sostituisci ciascuno segnaposto delle risorse di esempio con le tue informazioni.

Scegliere una delle seguenti schede per visualizzare e policy di esempio per l'intervallo di accesso alla sessione che si desidera fornire.

Session Manager and Fleet Manager

Utilizzare questa policy di esempio per fornire agli utenti la possibilità di avviare e riprendere sessioni solo dalle console Session Manager e Fleet Manager.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ec2:region:account-id:instance/instance-id", "arn:aws:ssm:region:account-id:document/SSM-SessionManagerRunShell" Footnote callout 1 to explain a line in a JSON policy ] }, { "Effect": "Allow", "Action": [ "ssm:DescribeSessions", "ssm:GetConnectionStatus", "ssm:DescribeInstanceProperties", "ec2:DescribeInstances" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssm:TerminateSession", "ssm:ResumeSession" ], "Resource": [ "arn:aws:ssm:*:*:session/${aws:userid}-*" ] }, { "Effect": "Allow", "Action": [ "kms:GenerateDataKey" Footnote callout 2 to explain a line in a JSON policy ], "Resource": "key-name" } ] }
Amazon EC2

Utilizzare questa policy di esempio per fornire agli utenti la possibilità di avviare e riprendere sessioni solo dalla console Amazon EC2. Questa policy non fornisce tutte le autorizzazioni necessarie per avviare le sessioni dalla console Session Manager e dall'AWS CLI.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession", "ssm:SendCommand" Footnote callout 3 to explain a line in a JSON policy ], "Resource": [ "arn:aws:ec2:region:account-id:instance/instance-id", "arn:aws:ssm:region:account-id:document/SSM-SessionManagerRunShell" Footnote callout 1 to explain a line in a JSON policy ] }, { "Effect": "Allow", "Action": [ "ssm:GetConnectionStatus", "ssm:DescribeInstanceInformation" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssm:TerminateSession", "ssm:ResumeSession" ], "Resource": [ "arn:aws:ssm:*:*:session/${aws:userid}-*" ] } ] }
AWS CLI

Utilizzare questa policy di esempio per fornire agli utenti la possibilità di avviare e riprendere sessioni solo da AWS CLI.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession", "ssm:SendCommand" Footnote callout 3 to explain a line in a JSON policy ], "Resource": [ "arn:aws:ec2:region:account-id:instance/instance-id", "arn:aws:ssm:region:account-id:document/SSM-SessionManagerRunShell" Footnote callout 1 to explain a line in a JSON policy ] }, { "Effect": "Allow", "Action": [ "ssm:TerminateSession", "ssm:ResumeSession" ], "Resource": [ "arn:aws:ssm:*:*:session/${aws:userid}-*" ] }, { "Effect": "Allow", "Action": [ "kms:GenerateDataKey" Footnote callout 2 to explain a line in a JSON policy ], "Resource": "key-name" } ] }

1 SSM-SessionManagerRunShell è il nome di default del documento SSM creato da Session Manager per archiviare le preferenze di configurazione della sessione. Puoi creare un documento di sessione personalizzato e specificarlo in questa policy. Puoi anche specificare il documento AWS-StartSSHSession fornito da AWS per gli utenti che avviano le sessioni mediante SSH. Per informazioni sui passi di configurazione necessari per supportare le sessioni utilizzando SSH, consulta (Facoltativo) Permettere e controllare le autorizzazioni per le connessioni SSH tramite Session Manager.

2 L'autorizzazione kms:GenerateDataKey consente la creazione di una chiave di crittografia dei dati che verrà utilizzata per crittografare i dati delle sessioni. Se utilizzi la crittografia AWS Key Management Service (AWS KMS) per i dati delle sessioni, sostituisci key-name con l'Amazon Resource Name ARN della chiave KMS che desideri utilizzare, nel formato arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-12345EXAMPLE. Se non utilizzi la crittografia delle chiavi KMS per i dati delle sessioni, rimuovi i seguenti contenuti dalla policy:

{ "Effect": "Allow", "Action": [ "kms:GenerateDataKey" ], "Resource": "key-name" }

Per informazioni su come utilizzare AWS KMS per crittografare i dati delle sessioni, consulta Attiva la crittografia delle chiavi KMS per i dati delle sessioni (console).

3 L'autorizzazione per SendCommand è necessaria nei casi in cui un utente tenta di avviare una sessione dalla console Amazon EC2, ma SSM Agent deve prima essere aggiornata alla versione minima richiesta per Session Manager. Run Command viene utilizzato per inviare un comando all'istanza per aggiornare l'agente.

Policy di avvio rapido per amministratori per Session Manager

Utilizzare gli esempi seguenti per creare policy di amministratore IAM per Session Manager.

Queste policy offrono agli amministratori la possibilità di avviare una sessione per i nodi gestiti contrassegnati con il tag Key=Finance,Value=WebServers, l'autorizzazione di creare, aggiornare ed eliminare le preferenze nonché l'autorizzazione di terminare solo le proprie sessioni. Per alcuni esempi di personalizzazioni che potresti applicare alla policy, fai riferimento a Altre policy IAM di esempio per Session Manager.

È possibile creare una policy che consenta agli amministratori di eseguire questi processi solo dalla console Session Manager e AWS CLI, solo dalla console di Amazon EC2 o da tutte e tre.

Nei seguenti criteri di esempio, sostituisci ciascuno segnaposto delle risorse di esempio con le tue informazioni.

Scegliere una delle seguenti schede per visualizzare le policy di esempio per lo scenario di accesso che si desidera supportare.

Session Manager and CLI

Utilizzare questa policy di esempio per fornire agli amministratori del provider la possibilità di eseguire processi correlati alla sessione solo dalla console Session Manager e dall'AWS CLI. Questa policy non fornisce tutte le autorizzazioni necessarie per eseguire processi correlati alla sessione dalla console Amazon EC2.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ec2:region:account-id:instance/*" ], "Condition": { "StringLike": { "ssm:resourceTag/Finance": [ "WebServers" ] } } }, { "Effect": "Allow", "Action": [ "ssm:DescribeSessions", "ssm:GetConnectionStatus", "ssm:DescribeInstanceProperties", "ec2:DescribeInstances" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssm:CreateDocument", "ssm:UpdateDocument", "ssm:GetDocument", "ssm:StartSession" ], "Resource": "arn:aws:ssm:region:account-id:document/SSM-SessionManagerRunShell" }, { "Effect": "Allow", "Action": [ "ssm:TerminateSession", "ssm:ResumeSession" ], "Resource": [ "arn:aws:ssm:*:*:session/${aws:userid}-*" ] } ] }
Amazon EC2

Utilizzare questa policy di esempio per fornire agli amministratori del provider la possibilità di eseguire processi correlati alla sessione solo dalla console Amazon EC2 Questa policy non fornisce tutte le autorizzazioni necessarie per eseguire attività correlate alla sessione dalla console Session Manager e dall'AWS CLI.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession", "ssm:SendCommand" Footnote callout 1 to explain a line in a JSON policy ], "Resource": [ "arn:aws:ec2:region:account-id:instance/*" ], "Condition": { "StringLike": { "ssm:resourceTag/tag-key": [ "tag-value" ] } } }, { "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ssm:region:account-id:document/SSM-SessionManagerRunShell" ] }, { "Effect": "Allow", "Action": [ "ssm:GetConnectionStatus", "ssm:DescribeInstanceInformation" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssm:TerminateSession", "ssm:ResumeSession" ], "Resource": [ "arn:aws:ssm:*:*:session/${aws:userid}-*" ] } ] }
Session Manager, CLI, and Amazon EC2

Utilizzare questa policy di esempio per fornire agli amministratori del provider la possibilità di eseguire processi relativi alla sessione dalla console Session Manager, dall'AWS CLI e dalla console Amazon EC2.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession", "ssm:SendCommand" Footnote callout 1 to explain a line in a JSON policy ], "Resource": [ "arn:aws:ec2:region:account-id:instance/*" ], "Condition": { "StringLike": { "ssm:resourceTag/tag-key": [ "tag-value" ] } } }, { "Effect": "Allow", "Action": [ "ssm:DescribeSessions", "ssm:GetConnectionStatus", "ssm:DescribeInstanceInformation", "ssm:DescribeInstanceProperties", "ec2:DescribeInstances" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssm:CreateDocument", "ssm:UpdateDocument", "ssm:GetDocument", "ssm:StartSession" ], "Resource": "arn:aws:ssm:region:account-id:document/SSM-SessionManagerRunShell" }, { "Effect": "Allow", "Action": [ "ssm:TerminateSession", "ssm:ResumeSession" ], "Resource": [ "arn:aws:ssm:*:*:session/${aws:userid}-*" ] } ] }

1 L'autorizzazione per SendCommand è necessaria nei casi in cui un utente tenta di avviare una sessione dalla console Amazon EC2, ma prima deve essere inviato un comando per aggiornare SSM Agent.