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á.
Defina a política de chaves gerenciada pelo cliente
Para usar uma chave gerenciada pelo cliente com o AWS Agent Registry, você deve configurar uma política de IAM para o principal chamador e uma política de chave KMS que permita ao serviço realizar operações de criptografia e descriptografia.
Pré-requisitos
Antes de criar um registro com uma chave gerenciada pelo cliente, certifique-se do seguinte:
-
Você tem uma chave KMS de criptografia simétrica na mesma AWS região do registro. Para obter informações sobre como criar uma chave KMS, consulte Criação de chaves no Guia do desenvolvedor do AWS Key Management Service.
-
A chamada principal do IAM
CreateRegistrytem as permissões de KMS necessárias. Consulte Permissões obrigatórias do IAM.
Permissões obrigatórias do IAM
Para interagir com um registro criptografado, você deve ter as seguintes permissões na chave KMS:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowRegistryCMKAccess", "Effect": "Allow", "Action": [ "kms:DescribeKey", "kms:CreateGrant", "kms:GenerateDataKeyWithoutPlaintext", "kms:GenerateDataKey", "kms:Encrypt", "kms:ReEncrypt*", "kms:Decrypt" ], "Resource": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "Condition": { "StringEquals": { "kms:ViaService": "agent-registry.us-east-1.amazonaws.com" } } } ] }
Substitua os valores a seguir:
-
Resource— O ARN da sua chave KMS. -
kms:ViaService—us-east-1Substitua pela AWS região do seu registro.
A kms:ViaService condição restringe as permissões às solicitações feitas por meio do serviço AWS Agent Registry, impedindo que essas permissões sejam usadas fora do AWS Agent Registry.
nota
Você deve estar autorizado a realizar essas ações de KMS — seja por meio de sua política de IAM ou por meio da política de chaves (consultePolítica de chaves para uma chave gerenciada pelo cliente). Se sua política de chaves incluir a declaração de política de chaves padrão que habilita as políticas do IAM, a política do IAM é suficiente.
Política de chaves para uma chave gerenciada pelo cliente
As seções a seguir listam as declarações de política de chaves do KMS que o AWS Agent Registry exige. Adicione essas declarações à sua política de chaves do KMS para que o serviço e os principais responsáveis pela chamada possam usar a chave. É necessário adicionar declarações quando sua política de chaves não inclui a declaração de política de chaves padrão que habilita as políticas do IAM ou quando a chave está em uma conta diferente.
Importante
Os blocos JSON nas seções a seguir são exemplos de declarações de políticas individuais, não de políticas-chave completas. Não os use para substituir sua política de chaves KMS existente. Em vez disso, copie as declarações de que você precisa — com base nas personalidades de sua organização e na função vinculada ao serviço — e anexe-as à Statement matriz de sua política de chaves existente. Atualize os valores em cada extrato (ID da conta, região, ARN da função e ARN do registro) para que correspondam ao seu ambiente antes de salvar a política.
A política de chaves deve conceder permissões com base nas personas do registro em sua organização:
-
Administrador — cria registros e gerencia a configuração de criptografia. Necessidades
kms:DescribeKeye encrypt/decrypt permissões.kms:CreateGrant -
Editor ou Aprovador — Cria e atualiza registros de registro (grava e lê descritores de registro). Precisa de permissões para criptografar e descriptografar.
-
Consumidor — Lê os registros do registro e os resultados da pesquisa (lê os descritores dos registros). Precisa de permissões de descriptografia.
Além das declarações pessoais, adicione as para que o Declaração de política para a função vinculada ao serviço AWS Agent Registry possa usar a chave em seu nome em tempo de execução. Se você compartilhar seu registro com outras contas em sua AWS organização usando o AWS Resource Access Manager (AWS RAM), adicione também Declaração de política para acesso da organização via AWS RAM o.
nota
Se sua função grava e lê descritores de registro (por exemplo, um editor que também recupera registros), conceda as permissões de criptografia e descriptografia conforme mostrado em. Declaração de política para o editor
Declaração de política para administrador
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowRegistryAdminKeyValidation", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RegistryAdminRole" }, "Action": [ "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "agent-registry.us-east-1.amazonaws.com" } } }, { "Sid": "AllowRegistryAdminGrantCreation", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RegistryAdminRole" }, "Action": [ "kms:CreateGrant" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "agent-registry.us-east-1.amazonaws.com" }, "Bool": { "kms:GrantIsForAWSResource": "true" } } }, { "Sid": "AllowRegistryAdminCryptoOps", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RegistryAdminRole" }, "Action": [ "kms:GenerateDataKeyWithoutPlaintext", "kms:GenerateDataKey", "kms:Encrypt", "kms:ReEncrypt*", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "agent-registry.us-east-1.amazonaws.com", "kms:EncryptionContext:aws:agent-registry:registry-arn": "arn:aws:agent-registry:us-east-1:111122223333:registry/my-registry-id" } } } ] }
-
AllowRegistryAdminKeyValidation— Permite que o administrador valide a chave antes de usá-la com um registro.
-
AllowRegistryAdminGrantCreation— Permite que o administrador crie subsídios ao criar um registro. A
kms:GrantIsForAWSResourcecondição garante que ela sókms:CreateGrantpossa ser usada quando um AWS serviço inicia a criação da concessão em nome do chamador. -
AllowRegistryAdminCryptoOps— Permite que o administrador criptografe e descriptografe os descritores de registro, com escopo de um registro específico por meio do contexto de criptografia.
Declaração de política para o editor
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowRegistryPublisherCryptoOps", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RegistryPublisherRole" }, "Action": [ "kms:GenerateDataKeyWithoutPlaintext", "kms:GenerateDataKey", "kms:Encrypt", "kms:ReEncrypt*", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "agent-registry.us-east-1.amazonaws.com", "kms:EncryptionContext:aws:agent-registry:registry-arn": "arn:aws:agent-registry:us-east-1:111122223333:registry/my-registry-id" } } } ] }
-
AllowRegistryPublisherCryptoOps— Permite que editores e aprovadores criptografem e descriptografem descritores de registros. Necessário para
CreateRegistryRecordUpdateRegistryRecorde.
Declaração de política para o consumidor
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowRegistryConsumerDecrypt", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RegistryConsumerRole" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "agent-registry.us-east-1.amazonaws.com", "kms:EncryptionContext:aws:agent-registry:registry-arn": "arn:aws:agent-registry:us-east-1:111122223333:registry/my-registry-id" } } } ] }
-
AllowRegistryConsumerDecrypt— Permite que os consumidores decifrem os descritores de registros. Necessário para
GetRegistryRecordSearchDiscoverableRegistryRecordse.
Declaração de política para a função vinculada ao serviço
Conceda permissão à função vinculada ao serviço do AWS Agent Registry para usar a chave em tempo de execução. O serviço usa essa função para criptografar e descriptografar descritores de registro em seu nome.
Adicionar essa declaração requer duas etapas ordenadas:
-
Crie primeiro a função vinculada ao serviço em sua conta. AWS O Agent Registry não cria a função para você — você mesmo deve criá-la antes de adicionar a declaração de política de chaves do KMS. Use a AWS CLI:
aws iam create-service-linked-role --aws-service-name agent-registry.amazonaws.com.rproxy.goskope.comIsso cria a
AWSServiceRoleForAgentRegistryfunção emarn:aws:iam::<account-id>:role/aws-service-role/agent-registry.amazonaws.com/AWSServiceRoleForAgentRegistry. Você só precisa fazer isso uma vez por conta. -
Em seguida, adicione a seguinte declaração à sua política de chaves do KMS. O IAM rejeita qualquer política de chave que faça referência a um principal que ainda não exista, portanto, a função deve estar presente antes de você colar uma declaração que a nomeie.
Escale a declaração para os registros em sua conta usando um curinga de contexto de criptografia.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowRegistrySlrCryptoOps", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/aws-service-role/agent-registry.amazonaws.com/AWSServiceRoleForAgentRegistry" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kms:GenerateDataKeyWithoutPlaintext", "kms:Encrypt", "kms:ReEncryptFrom", "kms:ReEncryptTo" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:agent-registry:registry-arn": "arn:aws:agent-registry:us-east-1:111122223333:registry/*" } } } ] }
-
AllowRegistrySlrCryptoOps— Permite que a função vinculada ao serviço do AWS Agent Registry (
AWSServiceRoleForAgentRegistry) criptografe e descriptografe os descritores de registro em seu nome, abrangendo os registros em sua conta por meio da condição.kms:EncryptionContext:aws:agent-registry:registry-arn
Declaração de política para acesso da organização via AWS RAM
Adicione essa declaração se você compartilhar um registro criptografado por chave gerenciado pelo cliente com outras contas em sua AWS organização usando o AWS Resource Access Manager (RAM).AWS Ele concede a qualquer diretor em sua organização a capacidade de descriptografar os descritores de registro de um registro compartilhado com eles. Se você não compartilhar o registro via AWS RAM, essa declaração não será necessária.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowOrganizationDecrypt", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalOrgID": "o-EXAMPLE1234" } } } ] }
-
AllowOrganizationDecrypt— Permite que qualquer diretor em sua AWS organização decifre os descritores de registros dos registros que você compartilha via RAM. AWS A
aws:PrincipalOrgIDcondição abrange essa permissão estritamente às contas dos membros da organização nomeada; sem um ID de organização correspondente, ela não"Principal": "*"concede nada. Os chamadores ainda precisam da permissão de IAM de nível de serviço correspondente no próprio registro compartilhado.
Substitua valores nas principais declarações de política
Substitua os seguintes valores em cada declaração de política chave:
-
Principal— O ARN do usuário ou função do IAM para cada persona.111122223333Substitua pelo ID da sua conta e os nomes das funções pelas suas funções reais do IAM. Para a declaração de função vinculada ao serviço,111122223333substitua-a pelo ID da sua conta; mantenha o caminho e o nome da função (aws-service-role/agent-registry.amazonaws.com/AWSServiceRoleForAgentRegistry) conforme mostrado — é um valor fixo gerenciado pelo serviço. -
kms:ViaService—us-east-1Substitua pela AWS região do seu registro. -
kms:EncryptionContext:aws:agent-registry:registry-arn— Substitua pelo ARN do seu registro. Para permitir o acesso a todos os registros em sua conta, useStringLikecom um curinga:.arn:aws:agent-registry:us-east-1:111122223333:registry/* -
aws:PrincipalOrgID— Na declaração de compartilhamento de AWS RAM,o-EXAMPLE1234substitua pela ID AWS da sua organização. Você pode encontrá-lo no console AWS Organizations ou executá-loaws organizations describe-organization --query 'Organization.Id' --output text.