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à.
IAMPolitiche di esempio aggiuntive per Session Manager
Fate riferimento ai seguenti esempi di policy per aiutarvi a creare un criterio personalizzato AWS Identity and Access Management (IAM) per qualsiasi Session Manager scenari di accesso utente che desideri supportare.
Argomenti
- Esempio 1: concedere l'accesso ai documenti nella console
- Esempio 2: limitare l'accesso a nodi gestiti specifici
- Esempio 3: limitazione dell'accesso in base ai tag
- Esempio 4: consentire agli utenti di terminare solo le sessioni da essi avviate
- Esempio 5: consentire l'accesso (amministrativo) completo a tutte le sessioni
Esempio 1: concedere l'accesso ai documenti nella console
Puoi consentire agli utenti di specificare un documento personalizzato quando avviano una sessione utilizzando la console di Session Manager. La IAM politica di esempio seguente concede l'autorizzazione ad accedere ai documenti con nomi che iniziano con SessionDocument-
la lettera Regione AWS
e Account AWS specificata.
Per utilizzare questo criterio, sostituisci ogni example resource
placeholder
con le tue informazioni.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:GetDocument", "ssm:ListDocuments" ], "Resource": [ "arn:aws:ssm:
region
:account-id
:document/SessionDocument-*" ] } ] }
Nota
La console di Session Manager supporta solo i documenti di sessione che hanno un sessionType
di Standard_Stream
e che vengono utilizzati per definire le preferenze di sessione. Per ulteriori informazioni, consulta Schema documento di sessione.
Esempio 2: limitare l'accesso a nodi gestiti specifici
È possibile creare una IAM policy che definisca a quali nodi gestiti un utente può connettersi utilizzando Session Manager. Ad esempio, la seguente policy concede a un utente il permesso di avviare, terminare e riprendere le sessioni su tre nodi specifici. La policy impedisce all'utente di connettersi a nodi diversi da quelli specificati.
Nota
Per gli utenti federati, vedereEsempio 4: consentire agli utenti di terminare solo le sessioni da essi avviate.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ec2:us-east-2:123456789012:instance/i-1234567890EXAMPLE", "arn:aws:ec2:us-east-2:123456789012:instance/i-abcdefghijEXAMPLE", "arn:aws:ec2:us-east-2:123456789012:instance/i-0e9d8c7b6aEXAMPLE", "arn:aws:ssm:us-east-2:123456789012:document/SSM-SessionManagerRunShell" ] }, { "Effect": "Allow", "Action": [ "ssm:TerminateSession", "ssm:ResumeSession" ], "Resource": [ "arn:aws:ssm:*:*:session/${aws:userid}-*" ] } ] }
Esempio 3: limitazione dell'accesso in base ai tag
Puoi limitare l'accesso ai nodi gestiti in base a tag specifici. Nell'esempio seguente, l'utente può avviare e riprendere le sessioni (Effect: Allow, Action: ssm:StartSession,
ssm:ResumeSession
) su qualsiasi nodo gestito (Resource:
arn:aws:ec2:
) a condizione che il nodo sia Finance WebServer (region
:987654321098
:instance/*ssm:resourceTag/Finance: WebServer
). Se l'utente invia un comando a un nodo gestito senza tag o con un tag diverso da Finance: WebServer
, il risultato del comando includerà AccessDenied
.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ec2:us-east-2:123456789012:instance/*" ], "Condition": { "StringLike": { "ssm:resourceTag/Finance": [ "WebServers" ] } } }, { "Effect": "Allow", "Action": [ "ssm:TerminateSession", "ssm:ResumeSession" ], "Resource": [ "arn:aws:ssm:*:*:session/${aws:userid}-*" ] }, { "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ssm:us-east-2:123456789012:document/SSM-SessionManagerRunShell" ] } ] }
È possibile creare IAM politiche che consentano a un utente di avviare sessioni su nodi gestiti etichettati con più tag. La seguente policy consente all'utente di avviare sessioni su nodi gestiti a cui sono applicati entrambi i tag specificati. Se l'utente invia un comando a un nodo gestito non contrassegnato con questi due tag, il risultato del comando includerà AccessDenied
.
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ssm:StartSession" ], "Resource":"*", "Condition":{ "StringLike":{ "ssm:resourceTag/tag-key1":[ "tag-value1" ], "ssm:resourceTag/tag-key2":[ "tag-value2" ] } } }, { "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ssm:us-east-2:123456789012:document/SSM-SessionManagerRunShell" ] } ] }
Per ulteriori informazioni sulla creazione di IAM policy, consulta Managed Policies e Inline Policies nella Guida per l'IAMutente. Per ulteriori informazioni sull'etichettatura dei nodi gestiti, consulta Tagging your Amazon EC2 resources nella Amazon EC2 User Guide (il contenuto si applica a Windows e Linux nodi gestiti). Per ulteriori informazioni su come aumentare la posizione di sicurezza rispetto ai comandi non autorizzati a livello di root nei nodi gestiti, consulta Limitare l'accesso ai comandi a livello di root tramite SSM Agent
Esempio 4: consentire agli utenti di terminare solo le sessioni da essi avviate
Session Manager fornisce due metodi per controllare quali sessioni può terminare un utente federato dell'utente. Account AWS
-
Usa la variabile
{aws:userid}
in una politica di autorizzazioni AWS Identity and Access Management (IAM). Gli utenti federati possono terminare solo le sessioni da essi avviate. Per gli utenti non federati, utilizzate il Metodo 1. Per gli utenti federati, utilizzare il Metodo 2. -
Utilizza i tag forniti dai AWS tag in una politica di IAM autorizzazioni. Nella policy deve essere inclusa una condizione che consenta agli utenti di terminare solo le sessioni contrassegnate con tag specifici forniti da AWS. Questo metodo funziona per tutti gli account, compresi quelli a cui viene concesso l'accesso tramite federatedIDs. AWS
Metodo 1: concedere TerminateSession i privilegi utilizzando la variabile {aws:username}
La seguente IAM politica consente a un utente di visualizzare tutte le sessioni IDs del proprio account. Tuttavia, gli utenti possono interagire con i nodi gestiti solo attraverso le sessioni da loro avviate. Un utente a cui è assegnata la seguente policy non può terminare o connettersi alle sessioni di altri utenti. A tale scopo, la policy utilizza la variabile {aws:username}
.
Nota
Questo metodo non funziona per gli account che concedono l'accesso all' AWS utilizzo di Federated. IDs
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ssm:DescribeSessions" ], "Effect": "Allow", "Resource": [ "*" ] }, { "Action": [ "ssm:TerminateSession" ], "Effect": "Allow", "Resource": [ "arn:aws:ssm:*:*:session/${aws:username}-*" ] } ] }
Metodo 2: concedere TerminateSession i privilegi utilizzando i tag forniti da AWS
È possibile controllare le sessioni che un utente può terminare includendo le variabili chiave dei tag condizionali in una IAM politica. La condizione specifica che l'utente può terminare solo le sessioni che sono contrassegnate con una o entrambe queste specifiche variabili chiave tag e un valore specificato.
Quando un tuo utente Account AWS inizia una sessione, Session Manager applica due tag di risorsa alla sessione. Il primo tag risorsa è aws:ssmmessages:target-id
, con il quale si specifica l'ID della destinazione che l'utente può terminare. L'altro tag risorsa è aws:ssmmessages:session-id
, con un valore nel formato di
.role-id
:caller-specified-role-name
Nota
Session Manager non supporta tag personalizzati per questa politica di controllo degli IAM accessi. È necessario utilizzare i tag di risorsa forniti da AWS, descritti di seguito.
-
aws:ssmmessages:target-id
-
Con questa chiave di tag, è possibile includere l'ID del nodo gestito come valore nella policy. Nel seguente blocco di policy, l'istruzione condition consente a un utente di terminare solo il nodo EXAMPLE i-02573cafcf.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:TerminateSession" ], "Resource": "*", "Condition": { "StringLike": { "ssm:resourceTag/aws:ssmmessages:target-id": [ "i-02573cafcfEXAMPLE" ] } } } ] }
Se l'utente tenta di terminare una sessione per la quale non è stata concessa questa autorizzazione
TerminateSession
, viene visualizzato un erroreAccessDeniedException
. -
aws:ssmmessages:session-id
-
Questa chiave tag include una variabile per l'ID di sessione come valore nella richiesta di avviare una sessione.
Nell'esempio seguente viene illustrata una policy per i casi in cui il tipo di chiamante è
User
. Il valore fornito peraws:ssmmessages:session-id
è l'ID dell'utente. In questo esempio,AIDIODR4TAW7CSEXAMPLE
rappresenta l'ID di un utente nel tuo Account AWS. Per recuperare l'ID di un utente nel tuo Account AWS, usa il comando,. IAMget-user
Per informazioni, consulta get-user nella AWS Identity and Access Management sezione della Guida per l'IAMutente.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:TerminateSession" ], "Resource": "*", "Condition": { "StringLike": { "ssm:resourceTag/aws:ssmmessages:session-id": [ "AIDIODR4TAW7CSEXAMPLE" ] } } } ] }
Nell'esempio seguente viene illustrata una policy per i casi in cui il tipo di chiamante è
AssumedRole
. Puoi utilizzare la variabile{aws:userid}
per il valore da fornire peraws:ssmmessages:session-id
. In alternativa, è possibile codificare un ID ruolo per il valore specificato peraws:ssmmessages:session-id
. Se codifichi un ID ruolo, devi specificare il valore nel formato
. Ad esempiorole-id
:caller-specified-role-name
AIDIODR4TAW7CSEXAMPLE:MyRole
.Importante
Per applicare i tag di sistema, l'ID ruolo fornito può contenere solo i seguenti caratteri: lettere Unicode, 0-9, spazio,
_
,.
,:
,/
,=
,+
,-
,@
e\
.Per recuperare l'ID del ruolo per un ruolo nel tuo Account AWS, usa il comando.
get-caller-identity
Per informazioni, consulta get-caller-identityla sezione AWS CLI Command Reference.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:TerminateSession" ], "Resource": "*", "Condition": { "StringLike": { "ssm:resourceTag/aws:ssmmessages:session-id": [ "${aws:userid}*" ] } } } ] }
Se un utente tenta di terminare una sessione per la quale non è stata concessa questa autorizzazione
TerminateSession
, viene visualizzato un erroreAccessDeniedException
. aws:ssmmessages:target-id
eaws:ssmmessages:session-id
-
È inoltre possibile creare IAM politiche che consentano a un utente di terminare sessioni contrassegnate con entrambi i tag di sistema, come illustrato in questo esempio.
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ssm:TerminateSession" ], "Resource":"*", "Condition":{ "StringLike":{ "ssm:resourceTag/aws:ssmmessages:target-id":[ "i-02573cafcfEXAMPLE" ], "ssm:resourceTag/aws:ssmmessages:session-id":[ "${aws:userid}*" ] } } } ] }
Esempio 5: consentire l'accesso (amministrativo) completo a tutte le sessioni
La seguente IAM politica consente a un utente di interagire completamente con tutti i nodi gestiti e tutte le sessioni create da tutti gli utenti per tutti i nodi. Dovrebbe essere concessa solo a un amministratore che necessita del pieno controllo delle informazioni dell'organizzazione Session Manager attività.
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ssm:StartSession", "ssm:TerminateSession", "ssm:ResumeSession", "ssm:DescribeSessions", "ssm:GetConnectionStatus" ], "Effect": "Allow", "Resource": [ "*" ] } ] }