Trabalhar com parâmetros compartilhados no Parameter Store - AWS Systems Manager

Trabalhar com parâmetros compartilhados no Parameter Store

O compartilhamento de parâmetros avançados simplifica o gerenciamento de dados de configuração em um ambiente com várias contas. É possível armazenar e gerenciar os parâmetros da AMI de forma centralizada e compartilhá-los com outras Contas da AWS que precisam referenciá-los.

O Parameter Store se integra ao AWS Resource Access Manager (AWS RAM) para permitir o compartilhamento avançado de parâmetros. O AWS RAM é um serviço que permite compartilhar recursos com outras Contas da AWS ou via AWS Organizations.

Com o AWS RAM, você compartilha recursos que possui criando um compartilhamento de recursos. Um compartilhamento de atributos especifica os atributos a serem compartilhados, as permissões a serem concedidas e os consumidores com quem o compartilhamento será feito. Os consumidores podem incluir:

  • Contas específicas da Contas da AWS dentro ou fora de sua organização no AWS Organizations

  • Uma unidade organizacional dentro da organização no AWS Organizations

  • Toda a organização no AWS Organizations

Para obter mais informações sobre o AWS RAM, consulte o Guia do usuário do AWS RAM.

Este tópico explica como compartilhar parâmetros que você possui e como usar os parâmetros que são compartilhados com você.

Pré-requisitos para compartilhar parâmetros

Os pré-requisitos a seguir devem ser atendidos para que você possa compartilhar parâmetros da sua conta:

  • Para compartilhar um recurso, é necessário ser seu proprietário em sua Conta da AWS. Não é possível compartilhar um parâmetro que foi compartilhado com você.

  • Para compartilhar um parâmetro, ele deve estar no nível de parâmetros avançados. Para obter informações sobre níveis de parâmetros, consulte Gerenciar camadas de parâmetros. Para obter informações sobre como alterar um parâmetro padrão existente para um parâmetro avançado, consulte Alterar um parâmetro padrão para um parâmetro avançado.

  • Para compartilhar um parâmetro SecureString, ele deve ser criptografado com uma chave gerenciada pelo cliente e você deve compartilhar a chave separadamente via AWS Key Management Service. Não é possível compartilhar Chaves gerenciadas pela AWS. Parâmetros criptografados com a Chave gerenciada pela AWS padrão podem ser atualizados para usar uma chave gerenciada pelo cliente. Para obter as definições de chaves do AWS KMS, consulte Conceitos do AWS KMS no Guia do desenvolvedor do AWS Key Management Service.

  • Para compartilhar um parâmetro com a sua organização ou com uma unidade organizacional no AWS Organizations, é necessário habilitar o compartilhamento com o AWS Organizations. Para obter mais informações, consulte Habilitar o compartilhamento com o AWS Organizations no Guia do usuário do AWS RAM.

Compartilhar um parâmetro

Para compartilhar um parâmetro, é necessário adicioná-lo a um compartilhamento de recursos. Um compartilhamento de recursos é um recurso do AWS RAM que permite que você compartilhe seus recursos entre Contas da AWS. Um compartilhamento de recursos especifica os recursos a serem compartilhados, e os clientes com os quais compartilhá-los.

Ao compartilhar um parâmetro pertencente a você com outra Contas da AWS, você pode escolher entre duas permissões gerenciadas pela AWS para conceder aos consumidores. Para ter mais informações, consulte Conjuntos de permissões para compartilhamento de parâmetros.

Se você fizer parte de uma organização no AWS Organizations e o compartilhamento estiver habilitado na organização, será possível conceder aos consumidores da organização o acesso a partir do console do AWS RAM para o parâmetro compartilhado. Caso contrário, os consumidores receberão um convite para participar do compartilhamento de recursos e acesso ao parâmetro compartilhado depois de aceitar o convite.

É possível compartilhar um parâmetro pertencente a você usando o console do AWS RAM ou a AWS CLI.

nota

Embora você possa compartilhar um parâmetro usando a operação da API PutResourcePolicy do Systems Manager, recomendamos usar o AWS Resource Access Manager (AWS RAM). Isso ocorre porque o uso de PutResourcePolicy exige a etapa extra de promover o parâmetro para um compartilhamento de recursos padrão usando a operação da API PromoteResourceShareCreatedFromPolicy do AWS RAM. Caso contrário, o parâmetro não será retornado pela operação da API DescribeParameters do Systems Manager usando a opção --shared.

Para compartilhar um parâmetro pertencente a você usando o console do AWS RAM

Consulte Criar um compartilhamento de recursos no AWS RAM no Guia do usuário do AWS RAM.

Faça as seguintes seleções ao concluir o procedimento:

  • Na página Etapa 1, em Recursos, selecione Parameter Store Advanced Parameter e, em seguida, selecione a caixa de cada parâmetro na camada de parâmetros avançados que deseja compartilhar.

  • Na página Etapa 2, em Permissões gerenciadas, escolha a permissão a ser concedida aos consumidores, conforme descrito em Conjuntos de permissões para compartilhamento de parâmetros mais adiante neste tópico.

Escolha outras opções com base em seus objetivos de compartilhamento de parâmetros.

Para compartilhar um parâmetro pertencente a você usando o console do AWS CLI

Use o comando create-resource-share para adicionar parâmetros a um novo compartilhamento de recursos.

Use o comando associate-resource-share para adicionar parâmetros a um compartilhamento de recursos existente.

O exemplo a seguir cria um novo compartilhamento de recursos para compartilhar parâmetros com consumidores em uma organização e em uma conta individual.

aws ram create-resource-share \ --name "MyParameter" \ --resource-arns "arn:aws:ssm:us-east-2:123456789012:parameter/MyParameter" \ --principals "arn:aws:organizations::123456789012:ou/o-63bEXAMPLE/ou-46xi-rEXAMPLE" "987654321098"

Parar de compartilhar um parâmetro

Quando você para de compartilhar um parâmetro, a conta do consumidor não pode mais acessar o parâmetro.

Para interromper o compartilhamento de um parâmetro pertencente a você, remova-o do compartilhamento de recursos. Isso pode ser feito usando o console do Systems Manager, o console do AWS RAM ou a AWS CLI.

Para parar de compartilhar um parâmetro pertencente a você usando o console do AWS RAM

Consulte Atualizar um compartilhamento de recursos no AWS RAM no Guia do usuário do AWS RAM.

Para parar de compartilhar um parâmetro pertencente a você usando a AWS CLI

Use o comando disassociate-resource-share.

Identificar parâmetros compartilhados

Os proprietários e consumidores podem identificar parâmetros compartilhados usando a AWS CLI.

Para identificar parâmetros compartilhados usando a AWS CLI

Para identificar parâmetros compartilhados usando a AWS CLI, você pode escolher entre o comando describe-parameters do Systems Manager e o comando list-resources do AWS RAM.

Quando você usa a opção --shared com describe-parameters, o comando retorna os parâmetros que são compartilhados com você.

Veja um exemplo a seguir:

aws ssm describe-parameters --shared

Acessar parâmetros compartilhados

Os consumidores podem acessar parâmetros compartilhados usando as ferramentas de linha de comando da AWS e os AWS SDKs. Para contas de consumidores, os parâmetros compartilhados com essa conta não são incluídos na página Meus parâmetros.

Exemplo de CLI: acessar detalhes de parâmetros compartilhados usando a AWS CLI

Para acessar detalhes de parâmetros compartilhados usando a AWS CLI, é possível usar os comandos get-parameter ou get-parameters. É necessário especificar o ARN completo do parâmetro como --name para recuperar o parâmetro de outra conta.

Veja um exemplo a seguir.

aws ssm get-parameter \ --name arn:aws:ssm:us-east-2:123456789012:parameter/MySharedParameter
Integrações com ou sem suporte para parâmetros compartilhados

No momento, é possível usar parâmetros compartilhados nos seguintes cenários de integração:

No momento, os cenários e serviços integrados a seguir não oferecem suporte ao uso de parâmetros compartilhados:

Conjuntos de permissões para compartilhamento de parâmetros

As contas de consumidor recebem acesso somente leitura aos parâmetros que você compartilha com elas. O consumidor não pode atualizar nem excluir o parâmetro. O consumidor não pode compartilhar o parâmetro com uma terceira conta.

Ao criar um compartilhamento de recursos no AWS Resource Access Manager para compartilhar seus parâmetros, é possível escolher entre dois conjuntos de permissões gerenciados pela AWS para conceder esse acesso somente leitura:

AWSRAMDefaultPermissionSSMParameterReadOnly

Ações permitidas: DescribeParameters, GetParameter, GetParameters

AWSRAMPermissionSSMParameterReadOnlyWithHistory

Ações permitidas: DescribeParameters, GetParameter, GetParameters, GetParameterHistory

Ao seguir as etapas em Criar um compartilhamento de recursos no AWS RAM no Guia do usuário do AWS RAM, escolha Parameter Store Advanced Parameters como o tipo de recurso e qualquer uma dessas permissões gerenciadas, dependendo se você deseja que os usuários visualizem o histórico de parâmetros ou não.

nota

Se você estiver recuperando parâmetros compartilhados programaticamente (por exemplo, usando o AWS Lambda), talvez seja necessário adicionar as permissões ssm:GetResourcePolicies e ssm:PutResourcePolicy a qualquer perfil do IAM que chame ações de API do AWS Resource Access Manager.

Throughput máximo para parâmetros compartilhados

O Systems Manager limita o throughput máximo (transações por segundo) para as operações GetParameter e GetParameters. O throughput é aplicado em nível de conta individual. Portanto, cada conta que consome um parâmetro compartilhado pode usar seu throughput máximo permitido sem ser afetada por outras contas. Para obter mais informações sobre o throughput máximo para parâmetros, consulte os tópicos a seguir:

Preços para parâmetros compartilhados

O compartilhamento entre contas só está disponível no nível de parâmetros avançados. Para parâmetros avançados, as cobranças são cobradas de acordo com o preço atual do armazenamento e do uso da API para cada parâmetro avançado. A conta proprietária é cobrada pelo armazenamento do parâmetro avançado. Qualquer conta consumidora que faça uma chamada de API para um parâmetro avançado compartilhado será cobrada pelo uso do parâmetro.

Por exemplo, se a Conta A criar um parâmetro avançado, MyAdvancedParameter, ela será cobrada em USD 0,05 por mês para armazenar o parâmetro.

A Conta A então compartilha MyAdvancedParameter com a Conta B e a Conta C. Durante um mês, as três contas fazem chamadas para MyAdvancedParameter. A tabela a seguir ilustra as cobranças em que eles incorreriam pelo número de chamadas feitas por cada um.

nota

As cobranças na tabela a seguir são apenas para fins ilustrativos. Para verificar os preços atuais, consulte Preços do AWS Systems Manager para Parameter Store.

Conta Número de chamadas Cobranças
Conta A (conta proprietária) 10.000 chamadas
  • Armazenamento avançado de parâmetros em um mês: USD 0,05

  • 10.000 chamadas para MyAdvancedParameter: USD 0,05

  • Total: USD 0,10

Conta B (conta consumidora) 20.000 chamadas
  • 20.000 chamadas para MyAdvancedParameter: USD 0,10

  • Total: USD 0,10

Conta C (conta consumidora) 30.000 chamadas
  • 30.000 chamadas para MyAdvancedParameter: USD 0,15

  • Total: USD 0,15

Acesso entre contas para Contas da AWS encerradas

Se a Conta da AWS proprietária de um parâmetro compartilhado for encerrada, todas as contas consumidoras perderão o acesso ao parâmetro compartilhado. Se a conta proprietária for reaberta dentro de 90 dias após seu encerramento, as contas consumidoras recuperarão o acesso aos parâmetros compartilhados anteriormente. Para obter mais informações sobre a reabertura de uma conta durante o período pós-encerramento, consulte Acessar sua Conta da AWS após encerrá-la no Guia de referência do AWS Account Management.