Criar perfis de serviço para o Automation usando o console
Se você precisar criar uma função de serviço para o Automation, um recurso do AWS Systems Manager, conclua as tarefas a seguir. Para obter mais informações sobre quando uma função de serviço é necessária para o Automation, consulte Configurar a automação.
Tarefas
Tarefa 1: Criar uma função de serviço para a automação
Use o procedimento a seguir para criar uma função de serviço (ou função assumida) para o Systems Manager Automation.
nota
Você também pode usar essa função em runbooks, como no runbook AWS-CreateManagedLinuxInstance
. O uso dessa função ou do nome do recurso da Amazon (ARN) de uma função do AWS Identity and Access Management (IAM) em runbooks permite que o Automation realize ações no seu ambiente, como iniciar novas instâncias e executar ações em seu nome.
Para criar uma função do IAM e permitir que ela seja assumida pelo Automation
Abra o console do IAM em https://console.aws.amazon.com/iam/
. -
No painel de navegação, escolha Roles e Create role.
-
Em Select type of trusted entity (Selecionar o tipo de entidade confiável), escolha AWS service (serviço).
-
Na seção Selecionar um caso de uso, selecione Systems Manager e Próximo: permissões.
-
Na página Attached permissions policy, procure a política AmazonSSMAutomationRole, escolha essa política e, em seguida, escolha Next: Review.
-
Na página Review (Análise), digite um nome na caixa Role name (Nome da função) e, em seguida, uma descrição.
-
Selecione Create role (Criar função). O sistema faz com que você retorne para a página Roles.
-
Na página Roles (Funções), escolha a função que você acabou de criar para abrir a página Summary (Resumo). Anote os valores de Role Name (Nome da função) e Role ARN (ARN da função). Você especificará o ARN da função ao associar a política iam:PassRole à sua conta do IAM no próximo procedimento. Você também pode especificar o nome da função e o ARN nos runbooks.
nota
A política AmazonSSMAutomationRole
atribui a permissão de função do Automation a um subconjunto de funções do AWS Lambda na sua conta. Essas funções começam com "Automation". Se você planeja usar o Automation com funções Lambda, o ARN Lambda deverá usar o seguinte formato:
"arn:aws:lambda:*:*:function:Automation*"
Se você tiver funções Lambda cujos ARNs não usam esse formato, também precisará anexar uma política Lambda adicional à sua função de automação, como a política AWSLambdaRole. A política ou função adicional deve fornecer acesso mais amplo às funções Lambda na Conta da AWS.
Depois de criar sua função de serviço, recomendamos editar a política de confiança para ajudar a evitar o problema entre serviços confused deputy. O problema confused deputy é um problema de segurança em que uma entidade que não tem permissão para executar uma ação pode coagir uma entidade mais privilegiada a executá-la. Na AWS, a personificação entre serviços pode resultar no problema do ‘confused deputy’. A personificação entre serviços pode ocorrer quando um serviço (o serviço de chamada) chama outro serviço (o serviço chamado). O serviço de chamada pode ser manipulado de modo a usar suas permissões para atuar nos recursos de outro cliente de uma forma na qual ele não deveria ter permissão para acessar. Para evitar isso, o AWS fornece ferramentas que ajudam você a proteger seus dados para todos os serviços com entidades principais de serviço que receberam acesso aos recursos em sua conta.
Recomendamos o uso das chaves de contexto de condição global aws:SourceArn
e aws:SourceAccount
em políticas de recursos para limitar as permissões que o Automation concede a outro serviço para o recurso. Se o valor aws:SourceArn
não contiver o ID da conta, como um ARN de bucket do Amazon S3, você deve usar ambas as chaves de contexto de condição global para limitar as permissões. Se você utilizar ambas as chaves de contexto de condição global, e o valor aws:SourceArn
contiver o ID da conta, o valor aws:SourceAccount
e a conta no valor aws:SourceArn
deverão utilizar o mesmo ID de conta quando utilizados na mesma declaração da política. Use aws:SourceArn
se quiser apenas um recurso associado a acessibilidade de serviço. Use aws:SourceAccount
se quiser permitir que qualquer recurso nessa conta seja associado ao uso entre serviços. O valor de aws:SourceArn
deve ser o ARN para execuções de automação. Se você não souber o ARN completo do recurso ou se estiver especificando vários recursos, use a chave da condição de contexto global aws:SourceArn
com curingas (*
) para as partes desconhecidas do ARN. Por exemplo, arn:aws:ssm:*:123456789012:automation-execution/*
.
O exemplo a seguir mostra como é possível usar as chaves de contexto de condição global aws:SourceArn
e aws:SourceAccount
para o Automation, a fim de evitar o problema confused deputy.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "ssm.amazonaws.com" ] }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnLike": { "aws:SourceArn": "arn:aws:ssm:*:123456789012:automation-execution/*" } } } ] }
Para modificar a política de confiança da função
Abra o console do IAM em https://console.aws.amazon.com/iam/
. -
No painel de navegação, selecione Roles (Funções).
-
Na lista de funções em sua conta, escolha o nome da função do serviço do Automation.
-
Escolha a guia Trust relationships (Relacionamentos de confiança) e, em seguida, selecione Edit trust relationship (Editar relacionamento de confiança).
-
Edite a política de confiança usando as chaves de contexto de condição global
aws:SourceArn
eaws:SourceAccount
para o Automation, a fim de evitar o problema confused deputy. -
Para salvar a alteração, escolha Update Trust Policy (Atualizar política de confiança).
(Opcional) Adicione uma política em linha ou uma política gerenciada pelo cliente para invocar outros Serviços da AWS
Se você executar uma automação que invoca outros Serviços da AWS usando uma função de serviço do IAM, essa última deverá ser configurada com permissão para invocar esses serviços. Esse requisito aplica-se a todos os runbooks do Automation da AWS (runbooks da AWS-*
), como os runbooks AWS-ConfigureS3BucketLogging
, AWS-CreateDynamoDBBackup
e AWS-RestartEC2Instance
, entre outros. Esse requisito também se aplica a todos os runbooks personalizados criados que invoquem outros Serviços da AWS, usando ações que chamam outros serviços. Por exemplo, se você usar as ações aws:executeAwsApi
, aws:CreateStack
ou aws:copyImage
, entre outras, deverá configurar a função de serviço com permissão para chamar esses serviços. É possível habilitar permissões para outros Serviços da AWS, adicionando uma política em linha do IAM ou uma política gerenciada pelo cliente ao perfil.
Para incorporar uma política em linha para uma função de serviço (console do IAM)
Faça login no AWS Management Console e abra o console do IAM em https://console.aws.amazon.com/iam/
. -
No painel de navegação, escolha Perfis.
-
Na lista, selecione o nome da função que você deseja editar.
-
Escolha a aba Permissões.
-
Na seção Adicionar permissões, selecione Anexar políticas ou Criar política em linha.
-
Ao escolher Anexar políticas, marque a caixa de seleção ao lado da política que deseja adicionar e escolha Adicionar permissões.
-
Se você escolher Criar política em linha, escolha a guia JSON.
-
Insira um documento de política JSON para os Serviços da AWS que você deseja chamar. Veja a seguir dois exemplos de documentos da política JSON.
Exemplo do PutObject e GetObject do Amazon S3
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" } ] }
Exemplos CreateSnapshot e DescribeSnapShots do Amazon EC2
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":"ec2:CreateSnapshot", "Resource":"*" }, { "Effect":"Allow", "Action":"ec2:DescribeSnapshots", "Resource":"*" } ] }
Para obter detalhes sobre a linguagem da política do IAM, consulte a Referência da política JSON do IAM no Manual do usuário do IAM.
-
Ao concluir, selecione Review policy (Revisar política). O Validador de política indica se há qualquer erro de sintaxe.
-
Na página Review policy (Revisar política), insira um nome em Name para a política que você está criando. Revise o Resumo da política para ver as permissões que são concedidas pela política. Em seguida, escolha Criar política para salvar seu trabalho.
-
Após a criação de uma política em linha, ela é automaticamente incorporada à sua função.
Tarefa 2: Anexar a política iam:PassRole à função de automação
Use o procedimento a seguir para associar a política iam:PassRole
à sua função de serviço de Automação. Isso permite que o serviço do Automation passe a função a outros serviços ou recursos do Systems Manager ao executar as automações.
Para anexar a política iam:PassRole à sua função de Automação
-
Na página Summary da função que você acabou de criar, escolha a guia Permissions (Permissões).
-
Escolha Add inline policy (Adicionar política em linha).
-
Na página Create policy (Criar política), selecione a guia Visual editor (Editor visual).
-
Selecione Service (Serviço) e, em seguida, selecione IAM.
-
Selecione Select actions (Selecionar ações).
-
Na caixa de texto Filter actions (Filtrar ações), digite
PassRole
e selecione a opção PassRole. -
Escolha atributos. Verifique se Specific (Específico) está selecionado e, em seguida, selecione Add ARN (Adicionar ARN).
-
No campo Specify ARN for role (Especificar ARN para função) cole o ARN da função de Automação que você copiou no final da Tarefa 1. O sistema preenche os campos Account (Conta) e Role name with path (Nome da função com caminho).
nota
Se você quiser que a função de serviço do Automation associe uma função de perfil da instância do IAM a uma instância do EC2, você deverá adicionar o ARN da função de perfil da instância do IAM. Isso permite que a função de serviço do Automation passe a função do perfil da instância do IAM para a instância de destino do EC2.
-
Escolha Add (Adicionar).
-
Escolha Review policy (Revisar política).
-
Na página Review Policy (Revisar política), digite um nome e, em seguida, selecione Create Policy (Criar política).