Exemplo de políticas do IAM para Session Manager - AWS Systems Manager

Exemplo de políticas do IAM para Session Manager

Use os exemplos nesta seção para ajudar a criar políticas do AWS Identity and Access Management (IAM) que fornecem as permissões necessárias mais comuns para acesso ao Session Manager.

nota

Também é possível usar uma política de AWS KMS key para controlar quais entidades IAM (usuários ou perfis) e Contas da AWS recebem acesso à sua chave do KMS. Para obter informações, consulte Visão geral do gerenciamento do acesso aos seus recursos do AWS KMS e Usar políticas de chaves no AWS KMS no Manual do desenvolvedor do AWS Key Management Service.

Políticas do usuário final do Quickstart para o Session Manager

Use os exemplos a seguir para criar políticas de usuário final do IAM para o Session Manager.

É possível criar uma política que permita que os usuários iniciem sessões apenas no console do Session Manager e na AWS Command Line Interface (AWS CLI), apenas no console do Amazon Elastic Compute Cloud (Amazon EC2) ou nos três.

Essas políticas fornecem aos usuários finais a capacidade de iniciar uma sessão de um nó gerenciado específico e encerrar apenas suas próprias sessões. Consulte o Exemplos adicionais de políticas do IAM para o Session Manager para obter exemplos de customização que você pode querer fazer na política.

Nas políticas de exemplo a seguir, substitua cada espaço reservado para recurso de exemplo por suas próprias informações.

Escolha entre as guias a seguir para exibir a política de exemplo para o intervalo de acesso à sessão que você deseja fornecer.

Session Manager and Fleet Manager

Use esta política de exemplo para conceder aos usuários a capacidade de iniciar e retomar sessões apenas dos consoles do Session Manager e do 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

Use esta política de exemplo para conceder aos usuários a capacidade de iniciar e retomar sessões apenas do console do Amazon EC2. Esta política não fornece todas as permissões necessárias para iniciar sessões do console do Session Manager e 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:GetConnectionStatus", "ssm:DescribeInstanceInformation" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssm:TerminateSession", "ssm:ResumeSession" ], "Resource": [ "arn:aws:ssm:*:*:session/${aws:userid}-*" ] } ] }
AWS CLI

Use esta política de exemplo para conceder aos usuários a capacidade de iniciar e retomar sessões apenas via 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 é o nome padrão do documento do SSM que o Session Manager cria para armazenar suas preferências de configuração de sessão. Você pode criar um documento de sessão personalizado e especificá-lo nessa política. Você também pode especificar o documento AWS-StartSSHSession fornecido pela AWS para usuários que estão iniciando sessões usando SSH. Para obter informações sobre as etapas de configuração necessárias para oferecer suporte a sessões que usam SSH, consulte (Opcional) Permitir e controlar permissões para conexões SSH por meio do Session Manager.

2 A permissão kms:GenerateDataKey permite a criação de uma chave de criptografia de dados que será usada para criptografar dados de sessão. Se você usar a criptografia do AWS Key Management Service (AWS KMS) para os dados da sessão, substitua key-name pelo nome do recurso da Amazon (ARN) da chave KMS que você deseja usar, no formato arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-12345EXAMPLE. Se você não for usar a criptografia de chaves do KMS para dados de sessão, remova o conteúdo da política a seguir.

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

Para obter informações sobre o uso do AWS KMS para criptografar dados de sessão, consulte Ativar a criptografia de chaves do KMS de dados de sessão (console).

3 A permissão para SendCommand é necessária nos casos em que um usuário tenta iniciar uma sessão via console do Amazon EC2, mas o SSM Agent deve ser atualizado para a versão mínima exigida do Session Manager primeiro. Run Command é usado para enviar um comando à instância para atualizar o agente.

Política do administrador do Quickstart para o Session Manager

Use os exemplos a seguir para criar políticas de administrador do IAM para o Session Manager.

Essas políticas fornecem aos administradores a capacidade de iniciar uma sessão para nós gerenciados marcados com Key=Finance,Value=WebServers, permissões para criar, atualizar e excluir preferências e permissões para encerrar apenas suas sessões próprias. Consulte o Exemplos adicionais de políticas do IAM para o Session Manager para obter exemplos de customização que você pode querer fazer na política.

É possível criar uma política que permita que os administradores executem essas tarefas apenas do console do Session Manager e da AWS CLI, apenas do console do Amazon EC2 ou dos três.

Nas políticas de exemplo a seguir, substitua cada espaço reservado para recurso de exemplo por suas próprias informações.

Escolha entre as guias a seguir para exibir a política de exemplo para o cenário de acesso ao qual você deseja oferecer suporte.

Session Manager and CLI

Use esta política de exemplo para conceder aos administradores a capacidade de executar tarefas relacionadas à sessão somente do console do Session Manager e da AWS CLI. Esta política não fornece todas as permissões necessárias para executar tarefas relacionadas à sessão do console do 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

Use esta política de exemplo para conceder aos administradores a capacidade de executar tarefas relacionadas à sessão somente do console do Amazon EC2. Essa política não fornece todas as permissões necessárias para executar tarefas relacionadas à sessão do console do Session Manager e da 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

Use esta política de exemplo para conceder aos administradores a capacidade de executar tarefas relacionadas à sessão do console do Session Manager, da AWS CLI e do console do 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 A permissão para SendCommand é necessária nos casos em que um usuário tenta iniciar uma sessão do console do Amazon EC2, mas um comando deve ser enviado para atualizar o SSM Agent primeiro.