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ê.
Conteúdo
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:
-
Parâmetros de modelos do AWS CloudFormation
-
Valores para
ImageID
com o comando RunInstances do EC2 para criar instâncias com base em uma Amazon Machine Image (AMI). -
Recuperar valores de parâmetros em runbooks
para o Automation, uma ferramenta do Systems Manager
No momento, os cenários e serviços integrados a seguir não oferecem suporte ao uso de parâmetros compartilhados:
-
Parâmetros em comandos em Run Command, uma ferramenta do Systems Manager
-
Referências dinâmicas do AWS CloudFormation
-
Os valores das variáveis de ambiente no AWS CodeBuild
-
Os valores das variáveis de ambiente no AWS App Runner
-
O valor de um segredo no Amazon Elastic Continer Service
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:
-
Cotas do Systems Manager Service no Referência geral da Amazon Web Services.
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 |
|
Conta B (conta consumidora) | 20.000 chamadas |
|
Conta C (conta consumidora) | 30.000 chamadas |
|
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.