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á.
Segurança em AWS AppConfig
A segurança na nuvem AWS é a maior prioridade. Como AWS cliente, você se beneficia de um data center e de uma arquitetura de rede criados para atender aos requisitos das organizações mais sensíveis à segurança.
A segurança é uma responsabilidade compartilhada entre você AWS e você. O modelo de responsabilidade compartilhada
-
Segurança da nuvem — AWS é responsável por proteger a infraestrutura que executa AWS os serviços no Nuvem AWS. AWS também fornece serviços que você pode usar com segurança. Auditores terceirizados testam e verificam regularmente a eficácia de nossa segurança como parte dos Programas de Conformidade Programas de AWS
de . Para saber mais sobre os programas de conformidade aplicáveis AWS Systems Manager, consulte AWS Serviços no escopo do programa de conformidade AWS . -
Segurança na nuvem — Sua responsabilidade é determinada pelo AWS serviço que você usa. Você também é responsável por outros fatores, incluindo a confidencialidade de seus dados, os requisitos da empresa e as leis e regulamentos aplicáveis.
AWS AppConfig é uma ferramenta em AWS Systems Manager. Para entender como aplicar o modelo de responsabilidade compartilhada ao usar AWS AppConfig, consulte Segurança em AWS Systems Manager. Essa seção descreve como configurar o Systems Manager para atingir os objetivos de segurança e conformidade do AWS AppConfig.
Implemente o acesso de privilégio mínimo
Como prática recomendada de segurança, conceda as permissões mínimas exigidas pelas identidades para realizar ações específicas em recursos específicos sob condições específicas. AWS AppConfig O agente oferece dois recursos que permitem que o agente acesse o sistema de arquivos de uma instância ou contêiner: backup e gravação em disco. Se você habilitar esses recursos, verifique se somente o AWS AppConfig Agente tem permissões para gravar nos arquivos de configuração designados no sistema de arquivos. Verifique também se somente os processos necessários para ler esses arquivos de configuração têm a capacidade de fazer isso. A implementação do acesso de privilégio mínimo é fundamental para reduzir o risco de segurança e o impacto que pode resultar de erros ou usuários mal-intencionados.
Para ter mais informações sobre como implementar o acesso de privilégio mínimo, consulte SEC03-BP02 Conceder acesso com privilégio mínimo no Guia do usuário do AWS Well-Architected Tool . Para obter mais informações sobre os recursos do AWS AppConfig Agente mencionados nesta seção, consulteUsar um manifesto para habilitar recursos de recuperação adicionais.
Criptografia de dados em repouso no AWS AppConfig
AWS AppConfig fornece criptografia por padrão para proteger os dados do cliente em repouso usando Chaves pertencentes à AWS.
Chaves pertencentes à AWS— AWS AppConfig usa essas chaves por padrão para criptografar automaticamente os dados implantados pelo serviço e AWS AppConfig hospedados no armazenamento de dados. Você não pode visualizar, gerenciar Chaves pertencentes à AWS, usar ou auditar seu uso. No entanto, não é necessário realizar nenhuma ação nem alterar qualquer programa para proteger as chaves que criptografam seus dados. Para obter mais informações, consulte Chaves pertencentes à AWS no Guia do desenvolvedor do AWS Key Management Service .
Embora não seja possível desativar essa camada de criptografia ou selecionar um tipo alternativo de criptografia, você pode especificar uma chave gerenciada pelo cliente a ser usada ao salvar dados de configuração hospedados no armazenamento de AWS AppConfig dados e ao implantar seus dados de configuração.
Chaves gerenciadas pelo cliente — AWS AppConfig suporta o uso de uma chave simétrica gerenciada pelo cliente que você cria, possui e gerencia para adicionar uma segunda camada de criptografia sobre a existente Chave pertencente à AWS. Por ter controle total dessa camada de criptografia, você pode realizar tarefas como:
-
Estabelecer e manter as políticas e concessões de chaves
-
Estabelecer e manter políticas do IAM
-
Ativar e desativar políticas de chaves
-
Alternar os materiais de criptografia de chave
-
Adicionar etiquetas
-
Criar réplicas de chaves
-
Programar chaves para exclusão
Para obter mais informações, consulte Chave gerenciada pelo cliente no Guia do desenvolvedor do AWS Key Management Service .
AWS AppConfig suporta chaves gerenciadas pelo cliente
AWS AppConfig oferece suporte para criptografia de chave gerenciada pelo cliente para dados de configuração. Para versões de configuração salvas no armazenamento de dados AWS AppConfig hospedado, os clientes podem definir um KmsKeyIdentifier
no perfil de configuração correspondente. Cada vez que uma nova versão dos dados de configuração é criada usando a operação da CreateHostedConfigurationVersion
API, AWS AppConfig gera uma chave de AWS KMS dados do KmsKeyIdentifier
para criptografar os dados antes de armazená-los. Quando os dados são acessados posteriormente, seja durante as operações da StartDeployment
API GetHostedConfigurationVersion
ou da API, AWS AppConfig descriptografa os dados de configuração usando informações sobre a chave de dados gerada.
AWS AppConfig também oferece suporte para criptografia de chave gerenciada pelo cliente para dados de configuração implantados. Para criptografar dados de configuração, os clientes podem fornecer um KmsKeyIdentifier
para sua implantação. AWS AppConfig gera a chave AWS KMS de dados com isso KmsKeyIdentifier
para criptografar dados na operação da StartDeployment
API.
AWS AppConfig acesso à criptografia
Ao criar uma chave gerenciada pelo cliente, siga esta política de chaves para garantir que a chave possa ser usada.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
account_ID
:role/role_name
" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*" } ]
Para criptografar dados de configuração hospedados com uma chave gerenciada pelo cliente, a chamada de identidade CreateHostedConfigurationVersion
precisa da seguinte declaração de política, que pode ser atribuída a um usuário, grupo ou função:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "kms:GenerateDataKey, "Resource": "arn:aws:kms:
Region
:account_ID
:key_ID
" } ] }
Se estiver usando um segredo do Secrets Manager ou qualquer outro dado de configuração criptografado com uma chave gerenciada pelo cliente, o retrievalRoleArn
precisará de kms:Decrypt
para descriptografar e recuperar os dados.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "kms:Decrypt", "Resource": "arn:aws:kms:
Region
:account_ID
:configuration source
/object
" } ] }
Ao chamar a operação da AWS AppConfig StartDeploymentAPI, a chamada de identidade StartDeployment
precisa da seguinte política do IAM, que pode ser atribuída a um usuário, grupo ou função:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:GenerateDataKey*" ], "Resource": "arn:aws:kms:
Region
:account_ID
:key_ID
" } ] }
Ao chamar a operação da AWS AppConfig GetLatestConfigurationAPI, a chamada de identidade GetLatestConfiguration
precisa da seguinte política, que pode ser atribuída a um usuário, grupo ou função:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "kms:Decrypt, "Resource": "arn:aws:kms:
Region
:account_ID
:key_ID
" } ] }
Contexto de criptografia
Um contexto de criptografia é um conjunto opcional de pares chave-valor que pode conter informações contextuais adicionais sobre os dados.
AWS KMS usa o contexto de criptografia como dados autenticados adicionais para oferecer suporte à criptografia autenticada. Quando você inclui um contexto de criptografia em uma solicitação para criptografar dados, AWS KMS vincula o contexto de criptografia aos dados criptografados. Para descriptografar os dados, você inclui o mesmo contexto de criptografia na solicitação.
AWS AppConfig contexto de criptografia: AWS AppConfig usa um contexto de criptografia em todas as operações AWS KMS criptográficas para implantações e dados de configuração hospedados criptografados. O contexto contém uma chave correspondente ao tipo de dados e um valor que identifica o dado específico.
Monitorando suas chaves de criptografia para AWS
Ao usar chaves gerenciadas pelo AWS KMS cliente com AWS AppConfig, você pode usar AWS CloudTrail o Amazon CloudWatch Logs para rastrear solicitações AWS AppConfig enviadas para AWS KMS.
O exemplo a seguir é um CloudTrail evento Decrypt
para monitorar AWS KMS
operações chamadas por AWS AppConfig para acessar dados criptografados pela chave gerenciada pelo cliente:
{ "eventVersion": "1.08", "userIdentity": { "type": "AWSService", "invokedBy": "appconfig.amazonaws.com" }, "eventTime": "2023-01-03T02:22:28z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "
Region
", "sourceIPAddress": "172.12.34.56", "userAgent": "ExampleDesktop/1.0 (V1; OS)", "requestParameters": { "encryptionContext": { "aws:appconfig:deployment:arn": "arn:aws:appconfig:Region
:account_ID
:application/application_ID
/environment/environment_ID
/deployment/deployment_ID
" }, "keyId": "arn:aws:kms:Region
:account_ID
:key/key_ID
", "encryptionAlgorithm": "SYMMETRIC_DEFAULT" }, "responseElements": null, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": true, "resources": [ { "accountId": "account_ID
", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:Region
:account_ID
:key_ID
" } ], "eventType": "AwsApiCall", "managementEvent": true, "eventCategory": "Management", "recipientAccountId": "account_ID
", "sharedEventID": "dc129381-1d94-49bd-b522-f56a3482d088" }
Acesso AWS AppConfig usando um endpoint de interface ()AWS PrivateLink
Você pode usar AWS PrivateLink para criar uma conexão privada entre sua VPC e. AWS AppConfig Você pode acessar AWS AppConfig como se estivesse em sua VPC, sem o uso de um gateway de internet, dispositivo NAT, conexão VPN ou conexão. AWS Direct Connect As instâncias na sua VPC não precisam de endereços IP públicos para acessar o AWS AppConfig.
Estabeleça essa conectividade privada criando um endpoint de interface, habilitado pelo AWS PrivateLink. Criaremos um endpoint de interface de rede em cada sub-rede que você habilitar para o endpoint de interface. Estas são interfaces de rede gerenciadas pelo solicitante que servem como ponto de entrada para o tráfego destinado ao AWS AppConfig.
Para obter mais informações, consulte Acessar os Serviços da AWS pelo AWS PrivateLink no Guia do AWS PrivateLink .
Considerações para AWS AppConfig
Antes de configurar um endpoint de interface para AWS AppConfig, consulte Considerações no AWS PrivateLink Guia.
AWS AppConfig suporta fazer chamadas para os appconfigdata
serviços appconfig
e por meio do endpoint da interface.
Criar um endpoint de interface para AWS AppConfig
Você pode criar um endpoint de interface para AWS AppConfig usar o console Amazon VPC ou AWS Command Line Interface o AWS CLI(). Para obter mais informações, consulte Criar um endpoint de interface no Guia do usuário do AWS PrivateLink .
Crie um endpoint de interface para AWS AppConfig usar os seguintes nomes de serviço:
com.amazonaws.
region
.appconfig
com.amazonaws.
region
.appconfigdata
Se você habilitar o DNS privado para o endpoint da interface, poderá fazer solicitações de API a AWS AppConfig usando seu nome DNS regional padrão. Por exemplo, appconfig.us-east-1.amazonaws.com
e appconfigdata.us-east-1.amazonaws.com
.
Criar uma política de endpoint para o endpoint de interface
Uma política de endpoint é um recurso do IAM que você pode anexar ao endpoint de interface. A política de endpoint padrão permite acesso total AWS AppConfig por meio do endpoint da interface. Para controlar o acesso AWS AppConfig permitido pela sua VPC, anexe uma política de endpoint personalizada ao endpoint da interface.
Uma política de endpoint especifica as seguintes informações:
-
As entidades principais que podem realizar ações (Contas da AWS, usuários do IAM e perfis do IAM).
-
As ações que podem ser realizadas.
-
Os recursos nos quais as ações podem ser executadas.
Para obter mais informações, consulte Controlar o acesso aos serviços usando políticas de endpoint no Guia do AWS PrivateLink .
Exemplo: política de VPC endpoint para ações AWS AppConfig
O exemplo a seguir refere-se a uma política de endpoint personalizada. Quando anexada ao endpoint da sua interface, essa política concede acesso às ações do AWS AppConfig listadas para todas as entidades principais em todos os recursos.
{ "Statement": [ { "Principal": "*", "Effect": "Allow", "Action": [ "
appconfig
:CreateApplication
", "appconfig
:CreateEnvironment
", "appconfig
:CreateConfigurationProfile
", "appconfig
:StartDeployment
", "appconfig
:GetLatestConfiguration
" "appconfig
:StartConfigurationSession
" ], "Resource":"*" } ] }
Alternância de chaves do Secrets Manager
Esta seção descreve informações de segurança importantes sobre a AWS AppConfig integração com o Secrets Manager. Para obter informações sobre o Secrets Manager, consulte O que é AWS Secrets Manager? no Guia do AWS Secrets Manager usuário.
Configurando a rotação automática dos segredos do Secrets Manager implantados pelo AWS AppConfig
Alternância é o processo de atualizar periodicamente um segredo armazenado no Secrets Manager. Quando o Secrets Manager alterna um segredo, ele atualiza as credenciais tanto no segredo quanto no banco de dados ou serviço. Você pode configurar a rotação automática de segredos no Secrets Manager usando uma AWS Lambda função para atualizar o segredo e o banco de dados. Para obter mais informações, consulte Alternar os segredos do AWS Secrets Manager no Guia do usuário do AWS Secrets Manager .
Para ativar a rotação de chaves dos segredos do Secrets Manager implantados por AWS AppConfig, atualize sua função de rotação do Lambda e implante o segredo rotacionado.
nota
Implante seu perfil de AWS AppConfig configuração depois que seu segredo for alterado e totalmente atualizado para a nova versão. Você pode determinar se o segredo foi alternado porque o status de VersionStage
muda de AWSPENDING
para AWSCURRENT
. A conclusão da alternância de segredos ocorre dentro da função finish_secret
dos modelos de alternância do Secrets Manager.
Aqui está um exemplo de função que inicia uma AWS AppConfig implantação após a rotação de um segredo.
import time import boto3 client = boto3.client('appconfig') def finish_secret(service_client, arn, new_version): """Finish the rotation by marking the pending secret as current This method finishes the secret rotation by staging the secret staged AWSPENDING with the AWSCURRENT stage. Args: service_client (client): The secrets manager service client arn (string): The secret ARN or other identifier new_version (string): The new version to be associated with the secret """ # First describe the secret to get the current version metadata = service_client.describe_secret(SecretId=arn) current_version = None for version in metadata["VersionIdsToStages"]: if "AWSCURRENT" in metadata["VersionIdsToStages"][version]: if version == new_version: # The correct version is already marked as current, return logger.info("finishSecret: Version %s already marked as AWSCURRENT for %s" % (version, arn)) return current_version = version break # Finalize by staging the secret version current service_client.update_secret_version_stage(SecretId=arn, VersionStage="AWSCURRENT", MoveToVersionId=new_version, RemoveFromVersionId=current_version) # Deploy rotated secret response = client.start_deployment( ApplicationId='TestApp', EnvironmentId='TestEnvironment', DeploymentStrategyId='TestStrategy', ConfigurationProfileId='ConfigurationProfileId', ConfigurationVersion=new_version, KmsKeyIdentifier=key, Description='Deploy secret rotated at ' + str(time.time()) ) logger.info("finishSecret: Successfully set AWSCURRENT stage to version %s for secret %s." % (new_version, arn))