As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Restringir o acesso a parâmetros do Systems Manager usando políticas do IAM
Restrinja o acesso aos parâmetros Systems Manager usando o AWS Identity and Access Management (IAM). Mais especificamente, você cria políticas do IAM que restringem o acesso às seguintes operações de API:
Ao usar IAM políticas do para restringir o acesso a Systems Manager parâmetros do
, recomendamos que você crie e use políticas restritivas doIAM . Por exemplo, a seguinte política permite que um usuário chame
as operações de API DescribeParameters
e GetParameters
para um conjunto limitado de recursos. Isso significa que o usuário pode obter informações
e usar todos os parâmetros que começam com prod-*
.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:DescribeParameters" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssm:GetParameters" ], "Resource": "
arn:aws:ssm:us-east-2:123456789012:parameter/prod-*
" } ] }
Se um usuário tiver acesso a um caminho, o usuário poderá acessar todos os níveis
desse caminho. Por exemplo, se um usuário tiver permissão para acessar o caminho /a
, ele também poderá acessar /a/b
. Mesmo que o acesso de um usuário tenha sido explicitamente negado no IAM para o
parâmetro /a/b
, ele ainda pode chamar a ação de GetParametersByPath API recursivamente para /a
e visualizar /a/b
.
Para administradores confiáveis, é possível fornecer acesso a todas as operações de
API de parâmetros do Systems Manager usando uma política semelhante ao exemplo a seguir.
Esta política fornece ao usuário o acesso total a todos os parâmetros de produção
que começam com dbserver-prod-*
.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "ssm:PutParameter", "ssm:DeleteParameter", "ssm:GetParameterHistory", "ssm:GetParametersByPath", "ssm:GetParameters", "ssm:GetParameter", "ssm:DeleteParameters" ], "Resource": "arn:aws:ssm:
region
:account-id
:parameter/dbserver-prod-*" }, { "Sid": "VisualEditor1", "Effect": "Allow", "Action": "ssm:DescribeParameters", "Resource": "*" } ] }
Permissões de negação
Cada API é exclusiva e tem operações e permissões distintas que podem ser permitidas ou negadas individualmente. Uma negação explícita em qualquer política substitui a permissão.
A chave padrão do AWS Key Management Service (AWS KMS) tem Decrypt
permissão para todas as IAM entidades principais na AWS conta. Se você quiser ter
diferentes níveis de acesso a SecureString
parâmetros em sua conta, não recomendamos usar a chave padrão.
Se você quiser que todas as operações de API do recuperem valores de parâmetro com
o mesmo comportamento, use um padrão como GetParameter*
em uma política. O exemplo a seguir mostra como negar GetParameter
, GetParameters
GetParameterHistory
, e GetParametersByPath
para todos os parâmetros começando com prod-*
.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "ssm:GetParameter*" ], "Resource": "
arn:aws:ssm:us-east-2:123456789012:parameter/prod-*
" } ] }
O exemplo a seguir mostra como negar alguns comandos e, ao mesmo tempo, permitir que
o usuário execute outros comandos em todos os parâmetros que começam com prod-*
.
{ "Version": "2012-10-17", "Statement": [ "Effect": "Deny", "Action": [ "ssm:PutParameter", "ssm:DeleteParameter", "ssm:DeleteParameters" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssm:GetParametersByPath", "ssm:GetParameters", "ssm:GetParameter", "ssm:GetParameterHistory" "ssm:DescribeParameters" ], "Resource": "arn:aws:ssm:
region
:account-id
:parameter/prod-*
" } ] }
O histórico de parâmetros inclui todas as versões de parâmetros, incluindo a atual.
Portanto, se um usuário tiver permissão negada para GetParameter
, e GetParameters
, GetParameterByPath
mas tiver permissão para GetParameterHistory
, ele poderá ver o parâmetro atual, incluindo SecureString
parâmetros , usando GetParameterHistory
.
Permitir que apenas parâmetros específicos sejam executados em instâncias
Você pode controlar o acesso para que as instâncias só possam executar os parâmetros especificados.
Se você escolher o tipo de SecureString
parâmetro ao criar seu parâmetro, o Systems Manager usará o AWS Key Management Service
(AWS KMS) para criptografar o valor do parâmetro. O AWS KMS criptografa o valor usando
uma chave mestra do cliente (CMK) AWS gerenciada pela ou uma CMK gerenciada pelo cliente.
Para obter mais informações sobre AWS KMS o e o CMKs, consulte o AWS Key Management Service Developer Guide.
Você pode visualizar a CMK AWS gerenciada pela executando o seguinte comando na AWS CLI.
aws kms describe-key --key-id alias/aws/ssm
O exemplo a seguir permite que as instâncias obtenham um valor de parâmetro somente
para parâmetros que começam com prod-
. Se o parâmetro for um SecureString
parâmetro , a instância descriptografará a string usando AWS KMS.
As políticas de instâncias, como no exemplo a seguir, são atribuídas à função de instância no IAM. Para obter mais informações sobre como configurar o acesso a recursos do Systems Manager, incluindo como atribuir políticas a usuários e instâncias, consulte Configurar o AWS Systems Manager.
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ssm:GetParameters" ], "Resource":[ "arn:aws:ssm:
region
:account-id
:parameter/prod-*
" ] }, { "Effect":"Allow", "Action":[ "kms:Decrypt" ], "Resource":[ "arn:aws:kms:region
:account-id
:key/CMK
" ] } ] }
Permissões do IAM para usar chaves padrão da AWS e chaves gerenciadas pelo cliente
Parameter Store SecureString
são criptografados e descriptografados usando as chaves do AWS Key Management ServiceAWS
KMS Você pode optar por criptografar seus SecureString
parâmetros usando uma chave mestra de cliente (CMK) ou a chave KMS padrão fornecida
pelo AWS.
Ao usar uma chave gerenciada pelo cliente, a IAM política que concede a um usuário
acesso a um parâmetro ou caminho de parâmetro deve fornecer kms:Encrypt
permissões explícitas para a chave. Por exemplo, a política a seguir permite que
um usuário crie, atualize e visualize SecureString
parâmetros que começam com prod-
na AWS região e na conta especificadas.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:PutParameter", "ssm:GetParameter", "ssm:GetParameters" ], "Resource": [ "arn:aws:ssm:us-east-2:111122223333:parameter/prod-*" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey"
], "Resource": [ "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-12345EXAMPLE" ] } ] }
1A permissão kms:GenerateDataKey
é necessária para criar parâmetros avançados criptografados usando a chave específica
gerenciada pelo cliente.
Por outro lado, todos os usuários da conta do cliente têm acesso à chave AWS gerenciada
padrão do . Se você usar essa chave padrão para criptografar SecureString
parâmetros e não quiser que os usuários trabalhem com SecureString
parâmetros, suas IAM políticas do deverão negar explicitamente o acesso à chave padrão,
conforme demonstrado no exemplo de política a seguir.
Você pode localizar o nome de recurso da Amazon (ARN) da chave padrão no AWS KMS console
do na página AWS managed keys (Chaves gerenciadas pela aws/ssm
na coluna Alias.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "kms:Decrypt", "kms:GenerateDataKey " ], "Resource": [ "
default-key-ARN
" ] } ] }
Se você precisar de controle de acesso minucioso sobre os parâmetros SecureString
em sua conta, será necessário usar uma CMK gerenciada pelo cliente para proteger
e restringir o acesso a esses parâmetros. Também recomendamos o uso do AWS CloudTrail
para monitorar atividades de parâmetros SecureString
Para obter mais informações, consulte os tópicos a seguir:
-
Lógica da avaliação de políticas no Guia do usuário do IAM
-
Usar políticas de chaves no AWS KMS no AWS Key Management Service Developer Guide
-
Visualizar eventos com o histórico de eventos do CloudTrail no AWS CloudTrail User Guide