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

AWS Systems Manager Change Manager não está mais aberto a novos clientes. Os clientes atuais podem continuar usando o serviço normalmente. Para obter mais informações, consulte mudança de disponibilidade do AWS Systems Manager Change 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.

JSON
JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ec2:us-east-1:111122223333:instance/i-02573cafcfEXAMPLE", "arn:aws:ssm:us-east-1:111122223333:document/SSM-SessionManagerRunShell" ] }, { "Effect": "Allow", "Action": ["ssmmessages:OpenDataChannel"], "Resource": ["arn:aws:ssm:*:*:session/${aws:userid}-*"] }, { "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" ], "Resource": "arn:aws:kms:us-east-1:111122223333:key/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.

JSON
JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession", "ssm:SendCommand" ], "Resource": [ "arn:aws:ec2:us-east-1:111122223333:instance/i-02573cafcfEXAMPLE", "arn:aws:ssm:us-east-1:111122223333:document/SSM-SessionManagerRunShell" ] }, { "Effect": "Allow", "Action": ["ssmmessages:OpenDataChannel"], "Resource": ["arn:aws:ssm:*:*:session/${aws:userid}-*"] }, { "Effect": "Allow", "Action": [ "ssm:GetConnectionStatus", "ssm:DescribeInstanceInformation" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssm:TerminateSession", "ssm:ResumeSession" ], "Resource": [ "arn:aws:ssm:*:*:session/${aws:username}-*" ] } ] }
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.

JSON
JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession", "ssm:SendCommand" ], "Resource": [ "arn:aws:ec2:us-east-1:111122223333:instance/i-02573cafcfEXAMPLE", "arn:aws:ssm:us-east-1:111122223333:document/SSM-SessionManagerRunShell" ] }, { "Effect": "Allow", "Action": ["ssmmessages:OpenDataChannel"], "Resource": ["arn:aws:ssm:*:*:session/${aws:userid}-*"] }, { "Effect": "Allow", "Action": [ "ssm:TerminateSession", "ssm:ResumeSession" ], "Resource": [ "arn:aws:ssm:*:*:session/${aws:userid}-*" ] }, { "Effect": "Allow", "Action": [ "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:us-east-1:111122223333:key/key-name" } ] }
nota

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.

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).

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 atendente.

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.

JSON
JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ec2:*:111122223333:instance/*" ], "Condition": { "StringLike": { "ssm:resourceTag/Finance": [ "WebServers" ] } } }, { "Effect": "Allow", "Action": [ "ssmmessages:OpenDataChannel" ], "Resource": [ "arn:aws:ssm:*:*:session/${aws:userid}-*" ] }, { "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:us-east-1:111122223333:document/SSM-SessionManagerRunShell" }, { "Effect": "Allow", "Action": [ "ssmmessages:OpenDataChannel" ], "Resource": [ "arn:aws:ssm:*:*:session/${aws:userid}-*" ] }, { "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.

JSON
JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession", "ssm:SendCommand" ], "Resource": [ "arn:aws:ec2:us-east-1:111122223333:instance/*" ], "Condition": { "StringLike": { "ssm:resourceTag/tag-key": [ "tag-value" ] } } }, { "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ssm:us-east-1:111122223333:document/SSM-SessionManagerRunShell" ] }, { "Effect": "Allow", "Action": ["ssmmessages:OpenDataChannel"], "Resource": ["arn:aws:ssm:*:*:session/${aws:userid}-*"] }, { "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.

JSON
JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession", "ssm:SendCommand" ], "Resource": [ "arn:aws:ec2:us-east-1:111122223333:instance/*" ], "Condition": { "StringLike": { "ssm:resourceTag/tag-key": [ "tag-value" ] } } }, { "Effect": "Allow", "Action": ["ssmmessages:OpenDataChannel"], "Resource": ["arn:aws:ssm:*:*:session/${aws:userid}-*"] }, { "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:us-east-1:111122223333:document/SSM-SessionManagerRunShell" }, { "Effect": "Allow", "Action": [ "ssm:TerminateSession", "ssm:ResumeSession" ], "Resource": [ "arn:aws:ssm:*:*:session/${aws:userid}-*" ] } ] }
nota

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.