Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Définir une politique de gestion des clés par le client
Pour utiliser une clé gérée par le client avec le registre des AWS agents, vous devez configurer à la fois une politique IAM pour le principal appelant et une politique de clé KMS qui permet au service d'effectuer des opérations de chiffrement et de déchiffrement.
Conditions préalables
Avant de créer un registre avec une clé gérée par le client, assurez-vous de ce qui suit :
-
Vous disposez d'une clé KMS de chiffrement symétrique dans la même AWS région que le registre. Pour plus d'informations sur la création d'une clé KMS, consultez la section Création de clés dans le Guide du développeur du service de gestion des AWS clés.
-
L'appelant principal IAM
CreateRegistrypossède les autorisations KMS requises. Consultez Autorisations IAM requises.
Autorisations IAM requises
Pour interagir avec un registre chiffré, vous devez disposer des autorisations suivantes sur la clé 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" } } } ] }
Remplacez les valeurs suivantes :
-
Resource— L'ARN de votre clé KMS. -
kms:ViaService— Remplacezus-east-1par la AWS région de votre registre.
La kms:ViaService condition limite les autorisations aux demandes effectuées via le service de registre des AWS agents, empêchant ainsi l'utilisation de ces autorisations en dehors du registre des AWS agents.
Note
Vous devez être autorisé à effectuer ces actions KMS, soit par le biais de votre politique IAM, soit par le biais de la politique clé (voirPolitique de clé pour une clé gérée par le client). Si votre politique clé inclut la déclaration de stratégie clé par défaut qui active les politiques IAM, la stratégie IAM est suffisante.
Politique de clé pour une clé gérée par le client
Les sections suivantes répertorient les déclarations de politique clés KMS requises par le registre des AWS agents. Ajoutez ces instructions à votre politique de clé KMS afin que le service et les principaux appelants puissent utiliser la clé. L'ajout d'instructions est obligatoire lorsque votre politique clé n'inclut pas la déclaration de stratégie clé par défaut qui active les politiques IAM, ou lorsque la clé se trouve dans un autre compte.
Important
Les blocs JSON des sections suivantes sont des exemples de déclarations de politique individuelles, et non de politiques clés complètes. Ne les utilisez pas pour remplacer votre politique de clé KMS existante. Copiez plutôt les déclarations dont vous avez besoin, en fonction des personnes au sein de votre organisation et du rôle lié au service, et ajoutez-les à l'Statementensemble de votre politique clé existante. Mettez à jour les valeurs de chaque instruction (ID de compte, région, ARN de rôle et ARN de registre) en fonction de votre environnement avant d'enregistrer la politique.
La politique clé doit accorder des autorisations en fonction des personnages de registre de votre organisation :
-
Administrateur : crée des registres et gère la configuration du chiffrement.
kms:DescribeKeykms:CreateGrantBesoins et encrypt/decrypt autorisations. -
Éditeur ou approbateur : crée et met à jour des enregistrements de registre (écrit et lit des descripteurs d'enregistrement). Nécessite des autorisations de chiffrement et de déchiffrement.
-
Consommateur : lit les enregistrements du registre et les résultats de recherche (lit les descripteurs d'enregistrement). Nécessite des autorisations de déchiffrement.
En plus des déclarations de personnalité, ajoutez-les Déclaration de politique pour le rôle lié aux services afin que le registre des AWS agents puisse utiliser la clé en votre nom lors de l'exécution. Si vous partagez votre registre avec d'autres comptes de votre AWS organisation à l'aide du Gestionnaire d'accès aux AWS ressources (AWS RAM), ajoutez également leDéclaration de politique concernant l'accès des organisations via AWS RAM.
Note
Si votre rôle écrit et lit à la fois des descripteurs d'enregistrement (par exemple, un éditeur qui extrait également des enregistrements), accordez des autorisations de chiffrement et de déchiffrement comme indiqué dans. Déclaration de politique à l'intention de l'éditeur
Déclaration de politique à l'intention de l'administrateur
{ "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— Permet à l'administrateur de valider la clé avant de l'utiliser avec un registre.
-
AllowRegistryAdminGrantCreation— Permet à l'administrateur de créer des subventions lors de la création d'un registre. La
kms:GrantIsForAWSResourcecondition garantit qu'elle nekms:CreateGrantpeut être utilisée que lorsqu'un AWS service initie la création de l'autorisation au nom de l'appelant. -
AllowRegistryAdminCryptoOps— Permet à l'administrateur de chiffrer et de déchiffrer les descripteurs d'enregistrement, limités à un registre spécifique via un contexte de chiffrement.
Déclaration de politique à l'intention de l'éditeur
{ "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— Permet aux éditeurs et aux approbateurs de chiffrer et de déchiffrer les descripteurs d'enregistrement. Obligatoire pour
CreateRegistryRecordetUpdateRegistryRecord.
Déclaration de politique à l'intention des consommateurs
{ "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— Permet aux consommateurs de déchiffrer les descripteurs d'enregistrement. Obligatoire pour
GetRegistryRecordetSearchDiscoverableRegistryRecords.
Déclaration de politique pour le rôle lié aux services
Accordez à AWS Agent Registry l'autorisation d'utiliser la clé lors de l'exécution du rôle lié à un service. Le service utilise ce rôle pour chiffrer et déchiffrer les descripteurs d'enregistrement en votre nom.
L'ajout de cette instruction nécessite deux étapes ordonnées :
-
Créez d'abord le rôle lié au service dans votre compte. AWS Le registre des agents ne crée pas le rôle à votre place. Vous devez le créer vous-même avant d'ajouter la déclaration de politique clé KMS. Utilisez l' AWS interface de ligne de commande :
aws iam create-service-linked-role --aws-service-name agent-registry.amazonaws.com.rproxy.goskope.comCela crée le
AWSServiceRoleForAgentRegistryrôle dearn:aws:iam::<account-id>:role/aws-service-role/agent-registry.amazonaws.com/AWSServiceRoleForAgentRegistry. Cette opération ne doit être effectuée qu’une seule fois par compte. -
Ajoutez ensuite la déclaration suivante à votre politique de clé KMS. IAM rejette toute politique clé faisant référence à un principal qui n'existe pas encore. Le rôle doit donc être présent avant que vous ne colliez une instruction qui le nomme.
Étendez la déclaration aux registres de votre compte à l'aide d'un caractère générique de contexte de chiffrement.
{ "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— Permet au rôle lié au service d' AWS Agent Registry (
AWSServiceRoleForAgentRegistry) de chiffrer et de déchiffrer les descripteurs d'enregistrement en votre nom, limités aux registres de votre compte via la condition.kms:EncryptionContext:aws:agent-registry:registry-arn
Déclaration de politique concernant l'accès des organisations via AWS RAM
Ajoutez cette déclaration si vous partagez un registre chiffré par clé géré par le client avec d'autres comptes de votre AWS organisation à l'aide du Gestionnaire d'accès aux AWS ressources (RAM).AWS Il permet à n'importe quel responsable de votre organisation de déchiffrer les descripteurs d'enregistrement d'un registre partagé avec lui. Si vous ne partagez pas le registre via la AWS RAM, cette instruction n'est pas requise.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowOrganizationDecrypt", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalOrgID": "o-EXAMPLE1234" } } } ] }
-
AllowOrganizationDecrypt— Permet à n'importe quel responsable de votre AWS organisation de déchiffrer les descripteurs d'enregistrement des registres que vous partagez via la RAM. AWS La
aws:PrincipalOrgIDcondition étend cette autorisation uniquement aux comptes membres de l'organisation désignée ; sans identifiant d'organisation correspondant, rien n'est"Principal": "*"accordé. Les appelants ont toujours besoin de l'autorisation IAM de niveau de service correspondante sur le registre partagé lui-même.
Remplacer les valeurs dans les principales déclarations de politique
Remplacez les valeurs suivantes dans chaque déclaration de politique clé :
-
Principal— L'ARN de l'utilisateur ou du rôle IAM pour chaque persona. Remplacez111122223333par votre identifiant de compte et les noms des rôles par vos rôles IAM réels. Pour le relevé de rôle lié à un service, remplacez-le111122223333par votre identifiant de compte ; conservez le chemin et le nom du rôle (aws-service-role/agent-registry.amazonaws.com/AWSServiceRoleForAgentRegistry) comme indiqué. Il s'agit d'une valeur fixe gérée par les services. -
kms:ViaService— Remplacezus-east-1par la AWS région de votre registre. -
kms:EncryptionContext:aws:agent-registry:registry-arn— Remplacez par l'ARN de votre registre. Pour autoriser l'accès à tous les registres de votre compte, utilisezStringLikeavec un joker :.arn:aws:agent-registry:us-east-1:111122223333:registry/* -
aws:PrincipalOrgID— Dans la déclaration de partage de AWS RAM,o-EXAMPLE1234remplacez-la par votre identifiant d' AWS organisation. Vous pouvez le trouver dans la console AWS Organizations ou l'exécuteraws organizations describe-organization --query 'Organization.Id' --output text.