Exemplos de políticas baseadas em identidade do AWS Systems Manager
Por padrão, as entidades do AWS Identity and Access Management (IAM) (usuários e perfis) não têm permissões para criar ou modificar os recursos do AWS Systems Manager. Eles também não podem executar tarefas usando o console do Systems Manager, a AWS Command Line Interface (AWS CLI) ou a API da AWS. Um administrador deve criar as políticas do IAM que concedam aos usuários e aos perfis permissões para executar operações de API específicas nos recursos especificados que precisam. O administrador deve anexar essas políticas aos usuários ou grupos que exigem essas permissões.
Veja a seguir um exemplo de uma política de permissões que permite que um usuário exclua documentos com nomes que começam com MyDocument-
na região Leste dos EUA (Ohio) (us-east-2) Região da AWS.
{ "Version": "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : [ "ssm:DeleteDocument" ], "Resource" : [ "arn:aws:ssm:us-east-2:111122223333:document/MyDocument-*" ] } ] }
Para saber como criar uma política baseada em identidade do IAM usando esses exemplos de documentos de política JSON, consulte Criar políticas do IAM no Guia do usuário do IAM.
Tópicos
Melhores práticas de política
As políticas baseadas em identidade determinam se alguém pode criar, acessar ou excluir recursos do Systems Manager em sua conta. Essas ações podem incorrer em custos para seus Conta da AWS. Ao criar ou editar políticas baseadas em identidade, siga estas diretrizes e recomendações:
-
Comece com as políticas gerenciadas pela AWS e avance para as permissões de privilégio mínimo –- para começar a conceder permissões a seus usuários e workloads, use as políticas gerenciadas pela AWS, que concedem permissões para muitos casos de uso comuns. Elas estão disponíveis em seus Conta da AWS. Recomendamos que você reduza ainda mais as permissões definindo políticas gerenciadas pelo cliente AWS específicas para seus casos de uso. Para obter mais informações, consulte Políticas gerenciadas pela AWS ou Políticas gerenciadas pela AWS para funções de trabalho no Guia do Usuário do IAM.
-
Aplique permissões de privilégio mínimo –- ao definir permissões com as políticas do IAM, conceda apenas as permissões necessárias para executar uma tarefa. Você faz isso definindo as ações que podem ser executadas em atributos específicos sob condições específicas, também conhecidas como permissões de privilégio mínimo. Para obter mais informações sobre como usar o IAM para aplicar permissões, consulte Políticas e permissões no IAM no Guia do Usuário do IAM.
-
Use condições nas políticas do IAM para restringir ainda mais o acesso –- você pode adicionar uma condição às políticas para limitar o acesso a ações e recursos. Por exemplo, você pode gravar uma condição de política para especificar que todas as solicitações devem ser enviadas usando SSL. Você também pode usar condições para conceder acesso a ações de serviço, se elas forem usadas por meio de um AWS service (Serviço da AWS) específico, como o AWS CloudFormation. Para obter mais informações, consulte Elementos da política JSON do IAM: Condição no Guia do usuário do IAM.
-
Use o IAM Access Analyzer para validar suas políticas do IAM a fim de garantir permissões seguras e funcionais –- o IAM Access Analyzer valida as políticas novas e existentes para que elas sigam a linguagem de política do IAM (JSON) e as práticas recomendadas do IAM. O IAM Access Analyzer oferece mais de 100 verificações de política e recomendações acionáveis para ajudá-lo a criar políticas seguras e funcionais. Para obter mais informações, consulte Validar políticas com o IAM Access Analyzer no Guia do usuário do IAM.
-
Exigir autenticação multifator (MFA) –- se houver um cenário que exija usuários do IAM ou um usuário raiz em sua Conta da AWS, ative a MFA para obter segurança adicional. Para exigir MFA quando as operações de API forem chamadas, adicione condições de MFA às suas políticas. Para obter mais informações, consulte Acesso seguro à API com a MFA no Guia do usuário do IAM.
Para obter mais informações sobre as práticas recomendadas do IAM, consulte Práticas Recomendadas de Segurança no IAM no Guia do Usuário do IAM.
Usar o console do Systems Manager
Para acessar o console do Systems Manager, você deve ter um conjunto mínimo de permissões. Essas permissões devem permitir listar e visualizar detalhes dos recursos do Systems Manager e outros recursos em sua Conta da AWS.
Para usar plenamente o Systems Manager no console do Systems Manager, é necessário ter permissões dos seguintes serviços:
-
AWS Systems Manager
-
Amazon Elastic Compute Cloud (Amazon EC2)
-
AWS Identity and Access Management (IAM)
É possível conceder as permissões requeridas com a instrução de política a seguir.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:*", "ec2:describeInstances", "iam:ListRoles" ], "Resource": "*" }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "ssm.amazonaws.com" } } } ] }
Se você criar uma política baseada em identidade mais restritiva do que as permissões mínimas requeridas, o console não funcionará conforme planejado para as entidades do IAM (usuários ou perfis) com essa política.
Não é necessário conceder permissões mínimas do console para usuários que fazem chamadas somente à AWS CLI ou à API do AWS. Em vez disso, permita o acesso somente às ações que correspondem à operação da API que você está tentando executar.
Permitir que os usuários visualizem suas próprias permissões
Este exemplo mostra como criar uma política que permita que os usuários do IAM visualizem as políticas gerenciadas e em linha anexadas a sua identidade de usuário. Essa política inclui permissões para concluir essa ação no console ou de forma programática usando a AWS CLI ou a AWS API.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }
Exemplos de política gerenciada pelo cliente
Você pode criar políticas independentes que você administra em sua própria Conta da AWS. Nós as chamamos de políticas gerenciadas pelo cliente. Você pode anexar essas políticas a várias entidades principais em sua Conta da AWS. Ao anexar uma política a uma entidade principal, você atribui à entidade as permissões que estão definidas na política. Para obter mais informações, consulte Criar exemplos de política gerenciada pelo cliente no Guia do usuário do IAM.
Os exemplos a seguir de políticas de usuário concedem permissões para várias ações do Systems Manager. Use-os para limitar o acesso do Systems Manager para as entidades do IAM (usuários e perfis). Essas políticas funcionam na execução de ações na API do Systems Manager, em AWS SDKs ou na AWS CLI. Para usuários que usam o console, você precisa conceder permissões adicionais específicas ao console. Para ter mais informações, consulte Usar o console do Systems Manager.
nota
Todos os exemplos usam a região do Oeste dos EUA (Oregon) (us-west-2) e contêm IDs de contas fictícias. O ID da conta não deve ser especificado no nome do recurso da Amazon (ARN) para documentos públicos da AWS (documentos que começam com AWS-*
).
Exemplos
Exemplo 1: permitir que um usuário execute operações do Systems Manager em uma única região
O exemplo a seguir concede permissões para executar operações do Systems Managersomente na região Leste dos EUA (Ohio) (us-east-2).
{ "Version": "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : [ "ssm:*" ], "Resource" : [ "arn:aws:ssm:us-east-2:
aws-account-ID
:*" ] } ] }
Exemplo 2: permitir que um usuário liste documentos de uma única região
O exemplo a seguir concede permissões para listar todos os nomes de documentos que começam com Update
na região Leste dos EUA (Ohio) (us-east-2).
{ "Version": "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : [ "ssm:ListDocuments" ], "Resource" : [ "arn:aws:ssm:us-east-2:
aws-account-ID
:document/Update*" ] } ] }
Exemplo 3: Permitir que um usuário utilize um documento específico do SSM para executar comandos em nós específicos
O exemplo de política do IAM permite a seguir que um usuário faça o seguinte na região Leste dos EUA (Ohio) (us-east-2):
-
ListaSystems ManagerDocumentos (documentos SSM) e versões de documentos.
-
Visualize detalhes sobre documentos.
-
Envie um comando usando o documento especificado na política. O nome do documento é determinado pela entrada a seguir.
arn:aws:ssm:us-east-2:
aws-account-ID
:document/Systems-Manager-document-name
-
Envie um comando para três nós. Os nós são determinados pelas entradas a seguir na segunda seção
Resource
."arn:aws:ec2:us-east-2:
aws-account-ID
:instance/i-02573cafcfEXAMPLE", "arn:aws:ec2:us-east-2:aws-account-ID
:instance/i-0471e04240EXAMPLE", "arn:aws:ec2:us-east-2:aws-account-ID
:instance/i-07782c72faEXAMPLE" -
Visualize detalhes sobre um comando depois que ele tiver sido enviado.
-
Inicie e interrompa fluxos de trabalho em Automação, um recurso doAWS Systems Manager.
-
Obtenha informações sobre fluxos de trabalho de automação.
Se você deseja conceder permissões a um usuário para o uso deste documento para envio de comandos em qualquer nó ao qual o usuário tenha acesso, especifique uma entrada semelhante à seguinte na seção Resource
e remova as outras entradas do nó. O exemplo a seguir usa a região Leste dos EUA (Ohio) (us-east-2).
"arn:aws:ec2:us-east-2:*:instance/*"
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ssm:ListDocuments", "ssm:ListDocumentVersions", "ssm:DescribeDocument", "ssm:GetDocument", "ssm:DescribeInstanceInformation", "ssm:DescribeDocumentParameters", "ssm:DescribeInstanceProperties" ], "Effect": "Allow", "Resource": "*" }, { "Action": "ssm:SendCommand", "Effect": "Allow", "Resource": [ "arn:aws:ec2:us-east-2:
aws-account-ID
:instance/i-02573cafcfEXAMPLE", "arn:aws:ec2:us-east-2:aws-account-ID
:instance/i-0471e04240EXAMPLE", "arn:aws:ec2:us-east-2:aws-account-ID
:instance/i-07782c72faEXAMPLE", "arn:aws:ssm:us-east-2:aws-account-ID
:document/Systems-Manager-document-name
" ] }, { "Action": [ "ssm:CancelCommand", "ssm:ListCommands", "ssm:ListCommandInvocations" ], "Effect": "Allow", "Resource": "*" }, { "Action": "ec2:DescribeInstanceStatus", "Effect": "Allow", "Resource": "*" }, { "Action": "ssm:StartAutomationExecution", "Effect": "Allow", "Resource": [ "arn:aws:ssm:us-east-2:aws-account-ID
:automation-definition/*" ] }, { "Action": "ssm:DescribeAutomationExecutions", "Effect": "Allow", "Resource": [ "*" ] }, { "Action": [ "ssm:StopAutomationExecution", "ssm:GetAutomationExecution" ], "Effect": "Allow", "Resource": [ "*" ] } ] }
Visualizar documentos do Systems Manager com base em tags
É possível utilizar condições na política baseada em identidade para controlar o acesso aos recursos do Systems Manager com base em tags. Este exemplo mostra como é possível criar uma política que permite visualizar um documento do SSM. No entanto, a permissão será concedida somente se a tag do documento Owner
tiver o valor do nome desse usuário. Essa política também concede as permissões necessárias concluir essa ação no console.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ListDocumentsInConsole", "Effect": "Allow", "Action": "ssm:ListDocuments", "Resource": "*" }, { "Sid": "ViewDocumentIfOwner", "Effect": "Allow", "Action": "ssm:GetDocument", "Resource": "arn:aws:ssm:*:*:document/*", "Condition": { "StringEquals": {"ssm:ResourceTag/Owner": "${aws:username}"} } } ] }
Você pode anexar essa política aos usuários na sua conta. Se um usuário chamado richard-roe
tentar visualizar um documento do Systems Manager, o documento deverá ser marcado Owner=richard-roe
ou owner=richard-roe
. Caso contrário, o acesso será negado. A chave da tag de condição Owner
corresponde a Owner
e a owner
porque os nomes de chaves de condição não fazem distinção entre maiúsculas e minúsculas. Para obter mais informações, consulte Elementos da política JSON do IAM: Condição no Guia do usuário do IAM.