View a markdown version of this page

Clés gérées par le client pour AWS Security Agent - Agent de sécurité AWS

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.

Clés gérées par le client pour AWS Security Agent

Par défaut, AWS Security Agent chiffre toutes les données inactives à l'aide de clés de AWS chiffrement gérées. Vous pouvez éventuellement utiliser une clé gérée par le client du service de gestion des AWS clés (AWS KMS) pour chiffrer vos données, ce qui vous donne un contrôle total sur les clés de chiffrement qui protègent vos ressources.

AWS Security Agent prend en charge les clés gérées par le client au niveau des ressources. Lorsque vous créez une ressource de haut niveau telle qu'un espace agent ou une intégration, vous pouvez spécifier une clé KMS pour chiffrer toutes les données appartenant à cette ressource et à ses sous-ressources. Par exemple, la spécification d'une clé gérée par le client lors de la création d'un espace agent chiffre toutes les données associées à cet espace agent, y compris les configurations de l'espace agent, les configurations des tests de pénétration, les tâches et les détails d'exécution, les résultats de sécurité, les points de terminaison découverts et les captures d'écran. Vous pouvez également fournir des AWS ressources déjà chiffrées avec votre propre clé gérée par le client, telles que des compartiments S3, des groupes de CloudWatch journaux Logs ou des secrets Secrets Manager. Pour connaître les autorisations KMS requises, consultezAutorisations KMS requises.

Comment fonctionnent les clés gérées par le client

AWS L'agent de sécurité utilise le jeu de clés hiérarchique AWS KMS pour chiffrer vos données à l'aide de clés gérées par le client. Lorsque vous spécifiez une clé KMS lors de la création d'une ressource, le service crée une clé de branche protégée par votre clé KMS et la stocke dans un magasin de DynamoDB-based clés Amazon. Pour chaque opération de chiffrement, le jeu de clés hiérarchique déduit une clé d'encapsulation unique à partir de la clé de branche active, qui chiffre une clé de chiffrement des données unique pour chaque demande.

Le porte-clés hiérarchique offre les avantages suivants :

  • Per-resource étendue du chiffrement : chaque ressource de niveau supérieur possède sa propre clé de branche, de sorte que les données des différentes ressources sont chiffrées sous des clés distinctes.

  • Rotation automatique des clés : AWS Security Agent fait régulièrement pivoter les clés de branche. Après la rotation, les nouvelles données sont chiffrées avec la nouvelle version de clé de branche, tandis que les anciennes versions sont conservées pour déchiffrer les données précédemment chiffrées.

Contexte de chiffrement

AWS L'agent de sécurité utilise le contexte de chiffrement dans toutes les opérations cryptographiques effectuées avec votre clé KMS. Le contexte de chiffrement est un ensemble de paires clé-valeur non secrètes qui fournit des données authentifiées supplémentaires pour l'opération de chiffrement.

La clé de contexte de chiffrement suit le formataws:securityagent:_<resource-type>_, où <resource-type> est le type de ressource cryptée (par exemple, agent-space ouintegration). La valeur est le Amazon Resource Name (ARN) de la ressource.

Note

Pour les intégrations, la clé de contexte de chiffrement inclut le aws-crypto-ec: préfixe, ce qui donne le format. aws-crypto-ec:aws:securityagent:integration

Vous pouvez utiliser le contexte de chiffrement pour étendre votre politique de clé KMS à des types de ressources spécifiques. Pour de plus amples informations, veuillez consulter Autorisations KMS requises.

Default encryption (Chiffrement par défaut)

Lorsque vous créez une ressource sans spécifier de clé gérée par le client, AWS Security Agent chiffre la ressource à l'aide de clés de AWS chiffrement gérées fournies par les services de stockage sous-jacents (Amazon DynamoDB et Amazon S3). Aucune configuration supplémentaire n'est requise pour le chiffrement par défaut.

Clé KMS par défaut pour les applications

Vous pouvez définir une clé KMS par défaut au niveau de l'application. Lorsqu'une clé KMS par défaut est configurée, AWS Security Agent l'utilise comme solution de secours pour les nouveaux espaces d'agent et les intégrations lorsque vous ne spécifiez pas explicitement de clé KMS lors de la création de ressources.

Pour définir une clé KMS par défaut, spécifiez le defaultKmsKeyId paramètre lors de la création ou de la mise à jour de votre application à l'aide de la AWS CLI ou du SDK. La console vous invite à spécifier une clé KMS par défaut lors de la configuration de l'application.

Lorsque vous spécifiez explicitement une clé KMS lors de la création d'une ressource, celle-ci a priorité sur la valeur par défaut au niveau de l'application.

Conditions préalables

Avant de configurer une clé gérée par le client, remplissez les conditions préalables suivantes :

  • Créez une clé KMS de chiffrement symétrique dans AWS KMS. La clé doit répondre aux exigences suivantes :

    • Type de clé : symétrique

    • Utilisation de la clé : crypter et déchiffrer

    • Spécification clé : SYMMETRIC_DEFAULT

    • État de la clé : Activé

      Pour obtenir des instructions, consultez la section Création de clés dans le guide du développeur du service de gestion des AWS clés.

  • Configurez la politique des clés KMS et les politiques IAM pour accorder à AWS Security Agent les autorisations requises. Pour en savoir plus, consultez Autorisations KMS requises.

Autorisations KMS requises

AWS L'agent de sécurité nécessite des autorisations KMS dans deux scénarios :

  • Chiffrement des données dans AWS Security Agent : lorsque vous spécifiez une clé gérée par le client pour un espace agent ou une intégration, le service a besoin d'autorisations pour utiliser cette clé pour effectuer des opérations cryptographiques sur vos données.

  • Utilisation CMK-encrypted AWS des ressources : lorsque vous fournissez des AWS ressources chiffrées à l'aide d'une clé gérée par le client (telles que des compartiments S3, CloudWatch des groupes de journaux Logs ou des secrets de Secrets Manager), le service a besoin d'autorisations pour utiliser ces clés afin d'accéder aux ressources chiffrées.

AWS L'agent de sécurité accède à votre clé KMS en utilisant différentes identités en fonction de l'opération :

  • AWS Opérations de la console de gestion : lorsque les administrateurs créent ou gèrent des ressources dans la console de AWS gestion (par exemple, en créant un espace agent ou en mettant à jour une application), le service utilise le rôle d'administrateur pour appeler AWS KMS.

  • Opérations des applications Web : lorsque les utilisateurs d'IAM Identity Center accèdent aux données via l'application Web AWS Security Agent (par exemple, en consultant les résultats d'un test d'intrusion ou en démarrant un test d'intrusion), le service utilise le rôle d'application créé lors de la configuration de l'agent de AWS sécurité pour appeler AWS KMS.

  • Accès aux ressources fournies par le client : lorsque le service accède aux AWS ressources fournies par le client pendant les tests d'intrusion (telles que les compartiments S3, les groupes de CloudWatch journaux et les secrets de Secrets Manager), il utilise le rôle de service de test d'intrusion pour appeler KMS. AWS

  • Flux de travail asynchrones : pour les opérations en arrière-plan exécutées en dehors de toute session utilisateur (par exemple, l'exécution de tests d'intrusion, le traitement de révision du code et la rotation des clés de branche), le service utilise son propre principal de service (securityagent.amazonaws.com) pour appeler AWS KMS en votre nom.

Les sections suivantes décrivent les autorisations requises pour chaque identité.

Stratégie de clé

Votre politique de clé KMS doit autoriser l'agent de AWS sécurité à utiliser la clé pour des opérations cryptographiques. Les déclarations de politique clés requises dépendent des types de ressources que vous prévoyez de chiffrer et des CMK-encrypted AWS ressources que vous fournissez au service.

Politique clé pour Agent Spaces

La politique clé suivante accorde à AWS Security Agent les autorisations nécessaires pour chiffrer et déchiffrer les données de l'Agent Space, y compris les résultats des tests d'intrusion et les captures d'écran.

Remplacez les valeurs d'espace réservé suivantes dans la politique :

  • 111122223333 — Votre identifiant AWS de compte

  • MyRole — Le rôle IAM que vous utilisez pour gérer l'agent AWS de sécurité dans la console

  • MyApplicationRole — Le rôle d'application créé lors de la configuration AWS de l'agent de sécurité

  • us-east-1 — La AWS région dans laquelle vous utilisez AWS Security Agent

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowKeyMetadataValidationForApplicationAndAgentSpaces", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyRole" }, "Action": [ "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "securityagent.us-east-1.amazonaws.com" } } }, { "Sid": "AllowUseOfHierarchicalKeyringForAgentSpaces", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyRole" }, "Action": [ "kms:GenerateDataKeyWithoutPlaintext", "kms:ReEncryptTo", "kms:ReEncryptFrom", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:securityagent:agent-space": "arn:aws:securityagent:us-east-1:111122223333:agent-space/*" }, "StringEquals": { "kms:ViaService": "securityagent.us-east-1.amazonaws.com" } } }, { "Sid": "AllowSynchronousDataAccessForAgentSpaces", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyApplicationRole" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:securityagent:agent-space": "arn:aws:securityagent:us-east-1:111122223333:agent-space/*" }, "StringEquals": { "kms:ViaService": "securityagent.us-east-1.amazonaws.com" } } }, { "Sid": "AllowAsynchronousDataAccessForAgentSpaces", "Effect": "Allow", "Principal": { "Service": "securityagent.amazonaws.com" }, "Action": [ "kms:GenerateDataKeyWithoutPlaintext", "kms:Decrypt", "kms:ReEncryptTo", "kms:ReEncryptFrom" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:securityagent:agent-space": "arn:aws:securityagent:us-east-1:111122223333:agent-space/*" }, "ArnLike": { "aws:SourceArn": "arn:aws:securityagent:us-east-1:111122223333:agent-space/*" } } }, { "Sid": "AllowAsynchronousDataAccessForCodeRemediation", "Effect": "Allow", "Principal": { "Service": "securityagent.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*" } ] }
Important

Pour effectuer une rotation des clés de branche, votre politique de clés KMS doit accorder kms:GenerateDataKeyWithoutPlaintextkms:ReEncryptTo, et kms:ReEncryptFrom les autorisations accordées au responsable du service AWS Security Agent (securityagent.amazonaws.com), faute de quoi la rotation des clés de branche échouera. Pour plus d'informations sur les autorisations requises, voir Rotation d'une clé de branche.

Politique clé en matière d'intégrations

La politique clé suivante accorde à AWS Security Agent les autorisations nécessaires pour chiffrer et déchiffrer les données d'intégration, y compris les résultats de la révision du code.

Remplacez les valeurs d'espace réservé suivantes dans la politique :

  • 111122223333 — Votre identifiant AWS de compte

  • MyRole — Le rôle IAM que vous utilisez pour gérer l'agent AWS de sécurité dans la console

  • us-east-1 — La AWS région dans laquelle vous utilisez AWS Security Agent

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowKeyAccessValidationForIntegrations", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyRole" }, "Action": [ "kms:GenerateDataKeyWithoutPlaintext", "kms:Decrypt", "kms:Encrypt", "kms:ReEncryptTo", "kms:ReEncryptFrom" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws-crypto-ec:aws:securityagent:integration": "arn:aws:securityagent:us-east-1:111122223333:integration/*" }, "StringEquals": { "kms:ViaService": "securityagent.us-east-1.amazonaws.com" } } }, { "Sid": "AllowKeyMetadataValidationForIntegrations", "Effect": "Allow", "Principal": { "Service": "securityagent.amazonaws.com" }, "Action": "kms:DescribeKey", "Resource": "*" }, { "Sid": "AllowAsynchronousDataAccessForIntegrations", "Effect": "Allow", "Principal": { "Service": "securityagent.amazonaws.com" }, "Action": [ "kms:GenerateDataKeyWithoutPlaintext", "kms:Decrypt", "kms:Encrypt", "kms:ReEncryptTo", "kms:ReEncryptFrom" ], "Resource": "*", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:securityagent:us-east-1:111122223333:integration/*" }, "StringLike": { "kms:EncryptionContext:aws-crypto-ec:aws:securityagent:integration": "arn:aws:securityagent:us-east-1:111122223333:integration/*" } } } ] }
Note

Vous pouvez combiner les déclarations de politique clé du pack d'exigences relatives à l'espace agent, à l'intégration et à la sécurité en une seule politique clé si vous souhaitez utiliser la même clé KMS pour plusieurs types de ressources.

Politique clé pour les packs d'exigences de sécurité

La politique clé suivante accorde à AWS Security Agent les autorisations nécessaires pour chiffrer et déchiffrer les données du pack d'exigences de sécurité. Les packs d'exigences de sécurité n'utilisent pas de rôle d'application Web. La politique utilise deux chemins d'accès :

  • Chemin synchrone : lorsque vous appelez l'API, le service utilise vos informations d'identification transférées pour appeler AWS KMS en votre nom (via la kms:ViaService condition).

  • Chemin asynchrone : pour les opérations asynchrones dans lesquelles les packs peuvent être utilisés, le service utilise son propre principal de service pour appeler directement KMS. AWS

Remplacez les valeurs suivantes dans la politique :

  • 111122223333 — Votre identifiant AWS de compte

  • MyRole — Le rôle IAM que vous utilisez pour appeler les opérations du pack d'exigences de sécurité

  • us-east-1 — La AWS région dans laquelle vous utilisez AWS Security Agent

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowKeyMetadataValidation", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyRole" }, "Action": [ "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "securityagent.us-east-1.amazonaws.com" } } }, { "Sid": "AllowUseOfHierarchicalKeyringForSecurityPacks", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyRole" }, "Action": [ "kms:GenerateDataKeyWithoutPlaintext", "kms:ReEncryptTo", "kms:ReEncryptFrom", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "securityagent.us-east-1.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:securityagent:security-requirement-pack": "arn:aws:securityagent:us-east-1:111122223333:security-requirement-pack/*" } } }, { "Sid": "AllowAsynchronousDataAccessForSecurityPacks", "Effect": "Allow", "Principal": { "Service": "securityagent.amazonaws.com" }, "Action": [ "kms:GenerateDataKeyWithoutPlaintext", "kms:Decrypt", "kms:ReEncryptTo", "kms:ReEncryptFrom" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:securityagent:security-requirement-pack": "arn:aws:securityagent:us-east-1:111122223333:security-requirement-pack/*" }, "ArnLike": { "aws:SourceArn": "arn:aws:securityagent:us-east-1:111122223333:security-requirement-pack/*" } } } ] }

La politique contient trois déclarations :

  • AllowKeyMetadataValidation— Des autorisations kms:DescribeKey permettant à AWS Security Agent de valider que la clé gérée par le client existe, est activée et utilise un chiffrement symétrique lorsque vous spécifiez une clé CMK lors de la création de ressources. Utilise la kms:ViaService condition pour s'assurer que l'appel provient du service.

  • AllowUseOfHierarchicalKeyringForSecurityPacks— Accorde kms:GenerateDataKeyWithoutPlaintext (création de nouvelles clés de branche), kms:ReEncryptTo kms:ReEncryptFrom (rotation des clés de branche existantes) et kms:Decrypt (récupération des clés de branche existantes) pour les opérations de jeu de clés hiérarchiques. Ces opérations utilisent vos informations d'identification transmises via le chemin synchrone et sont limitées aux ressources du pack d'exigences de sécurité en fonction de la condition de contexte de chiffrement.

  • AllowAsynchronousDataAccessForSecurityPacks— Accordekms:GenerateDataKeyWithoutPlaintext, kms:Decryptkms:ReEncryptTo, et kms:ReEncryptFrom au principal du service AWS Security Agent pour les opérations asynchrones lorsqu'aucune information d'identification de l'appelant n'est disponible.

Contrairement à la politique clé d'Agent Spaces, la politique du pack d'exigences de sécurité n'inclut pas de principal de rôle d'application Web. Les packs d'exigences de sécurité sont accessibles via la console de AWS gestion en utilisant votre rôle d'administrateur, et non via l'application Web AWS Security Agent. Toutes les opérations synchrones utilisent le rôle d'appelant unique (viakms:ViaService).

Note

Si vous utilisez la même clé KMS pour Agent Spaces et pour les packs d'exigences de sécurité, vous pouvez combiner les déclarations de politique clés des deux sections en une seule politique clé.

Politique clé pour CMK-encrypted AWS resources

Si vous fournissez des AWS ressources chiffrées à l'aide d'une clé gérée par le client à AWS Security Agent, vous devez mettre à jour la politique relative aux clés KMS de chaque ressource afin d'accorder les autorisations nécessaires. Cela s'applique aux ressources suivantes :

  • Compartiments S3 : si vous fournissez des ressources d'apprentissage à partir d'un compartiment S3 chiffré à l'aide d'une clé gérée par le client (SSE-KMS), la politique en matière de clés doit autoriser le rôle de service de test d'intrusion à déchiffrer les objets.

  • Secrets Manager : si vos identifiants de test d'intrusion sont stockés dans des secrets de Secrets Manager chiffrés à l'aide d'une clé gérée par le client, la politique en matière de clés doit autoriser le rôle de service de test d'intrusion à déchiffrer ces secrets. Si l'application Web crée des secrets en votre nom, la politique clé doit également autoriser le rôle de l'application à chiffrer ces secrets.

  • CloudWatch Groupes de journaux : si le groupe de CloudWatch journaux utilisé pour stocker les journaux d'exécution des tests d'intrusion est chiffré à l'aide d'une clé gérée par le client, la politique en matière de clés doit permettre à CloudWatch Logs de valider la clé KMS via le rôle de service et au principal du service CloudWatch Logs d'effectuer des opérations cryptographiques.

Important

AWS Security Agent peut également créer des CloudWatch journaux, des groupes de journaux et des secrets Secrets Manager en votre nom. Lorsque vous configurez votre politique de clés KMS, incluez également les instructions correspondantes pour ces ressources créées par le service.

Les principales déclarations de politique suivantes accordent les autorisations requises pour les CMK-encrypted ressources. N'incluez que les instructions qui s'appliquent à votre configuration. Si une ressource utilise la même clé KMS que celle que vous avez spécifiée pour votre espace agent, ajoutez ces instructions à la politique de cette clé. Si une ressource utilise une autre clé KMS, ajoutez plutôt ces instructions à la politique de cette clé.

Remplacez les valeurs d'espace réservé suivantes dans la politique :

  • 111122223333 — Votre identifiant AWS de compte

  • MyApplicationRole — Le rôle d'application créé lors de la configuration AWS de l'agent de sécurité

  • MyPenTestServiceRole — Le rôle du service de test d'intrusion

  • us-east-1 — La AWS région dans laquelle vous utilisez AWS Security Agent

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowKmsKeyAccessForCreatingSecrets", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyApplicationRole" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333" }, "StringLike": { "kms:ViaService": "secretsmanager.*.amazonaws.com", "kms:EncryptionContext:SecretARN": "arn:aws:secretsmanager:us-east-1:111122223333:secret:*" } } }, { "Sid": "AllowKmsKeyDecryptionForS3Objects", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyPenTestServiceRole" }, "Action": [ "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333" }, "StringLike": { "kms:ViaService": "s3.*.amazonaws.com", "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::YOUR-BUCKET-NAME*" } } }, { "Sid": "AllowKmsKeyDecryptionForSecretsManagerSecrets", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyPenTestServiceRole" }, "Action": [ "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333" }, "StringLike": { "kms:ViaService": "secretsmanager.*.amazonaws.com", "kms:EncryptionContext:SecretARN": "arn:aws:secretsmanager:us-east-1:111122223333:secret:YOUR-SECRET-NAME*" } } }, { "Sid": "AllowKmsKeyValidationForCloudWatchLogsLogGroups", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyPenTestServiceRole" }, "Action": [ "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333" }, "StringLike": { "kms:ViaService": "logs.*.amazonaws.com" } } }, { "Sid": "AllowKmsKeyAccessForCloudWatchLogsLogGroups", "Effect": "Allow", "Principal": { "Service": "logs.us-east-1.amazonaws.com" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333" }, "StringLike": { "kms:EncryptionContext:aws:logs:arn": "arn:aws:logs:us-east-1:111122223333:log-group:YOUR-LOG-GROUP-NAME*" } } } ] }
Note
  • La AllowKmsKeyDecryptionForS3Objects déclaration n'est requise que si vous fournissez des ressources d'apprentissage à partir de compartiments S3 chiffrés à l'aide d'une clé gérée par le client. Pour plus d'informations sur la configuration SSE-KMS pour S3, consultez la section Protection des données avec SSE-KMS.

  • La AllowKmsKeyDecryptionForSecretsManagerSecrets déclaration n'est requise que si les informations d'identification de votre test d'intrusion sont stockées dans les secrets de Secrets Manager chiffrés à l'aide d'une clé gérée par le client. Le rôle de service a besoin d'un accès pour déchiffrer les secrets lors des tests d'intrusion. Pour plus d'informations sur le chiffrement secret, consultez la section Chiffrement secret et déchiffrement dans Secrets Manager.

  • L'AllowKmsKeyValidationForCloudWatchLogsLogGroupsinstruction accorde le rôle de service kms:DescribeKey afin que CloudWatch Logs puisse valider la clé KMS via le rôle de service lorsqu'il l'associe à un groupe de journaux.

  • La AllowKmsKeyAccessForCreatingSecrets déclaration est obligatoire si l'application Web crée des secrets Secrets Manager en votre nom à l'aide d'une clé gérée par le client. Le rôle d'application a besoin kms:GenerateDataKey et kms:Decrypt doit chiffrer le secret avec votre clé KMS.

  • L'AllowKmsKeyAccessForCloudWatchLogsLogGroupsinstruction accorde au principal du service CloudWatch Logs (logs.us-east-1.amazonaws.com) les autorisations dont il a besoin pour chiffrer et déchiffrer les données des journaux. Cette déclaration est également requise si AWS Security Agent crée un groupe de journaux en votre nom alors que vous n'en fournissez pas un existant. Pour plus d'informations, voir Chiffrer les données des CloudWatch journaux dans les journaux à l'aide de AWS KMS.

  • Si plusieurs ressources partagent la même clé KMS, vous pouvez combiner les instructions en une seule politique de clé.

Rôle d'administrateur

Aucune politique IAM supplémentaire n'est requise pour le rôle d'administrateur (le rôle IAM que vous utilisez pour gérer l'agent AWS de sécurité dans la console).

Rôle de l'application

Outre la politique de clé KMS, associez la stratégie IAM suivante au rôle d'application spécifié lors de la configuration de l'agent AWS de sécurité. Cette politique accorde au rôle l'autorisation d'utiliser les clés gérées par le client pour chiffrer et déchiffrer les données Agent Space et créer des secrets dans Secrets Manager. AWS

Remplacez les valeurs d'espace réservé suivantes dans la politique :

  • 111122223333 — Votre identifiant AWS de compte

  • us-east-1 — La AWS région dans laquelle vous utilisez AWS Security Agent

  • Les ARN de la clé KMS entrés Resource — Les ARN de vos clés KMS

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowSynchronousDataAccessForAgentSpaces", "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": [ "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890cd" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333", "kms:ViaService": "securityagent.us-east-1.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:securityagent:agent-space": "arn:aws:securityagent:us-east-1:111122223333:agent-space/*" } } }, { "Sid": "AllowKmsKeyAccessForCreatingSecrets", "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": [ "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890cd" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333" }, "StringLike": { "kms:ViaService": "secretsmanager.*.amazonaws.com", "kms:EncryptionContext:SecretARN": "arn:aws:secretsmanager:us-east-1:111122223333:secret:*" } } } ] }
Note

Le rôle d'application est un rôle IAM que vous spécifiez ou que la console crée lors de l'installation AWS de Security Agent. L'application Web assume ce rôle pour récupérer les journaux d'exécution des tests d'intrusion et créer des secrets Secrets Manager en votre nom.

  • L'AllowKmsKeyAccessForCreatingSecretsinstruction est requise si vous configurez des ressources d'authentification pour les tests d'intrusion et que vous choisissez de saisir directement les informations d'identification au lieu de spécifier un secret existant. L'application Web crée un secret en votre nom, et le rôle d'application a besoin des autorisations indiquées dans cette instruction pour chiffrer le secret avec la clé gérée par le client spécifiée pour votre espace agent. Mettez à jour Resource les ARN de cette instruction pour qu'ils correspondent à la clé KMS utilisée pour votre espace agent.

Rôle de service

Pendant les tests d'intrusion, AWS Security Agent joue le rôle de service de test d'intrusion pour accéder à vos AWS ressources. Si l'une de ces ressources est chiffrée à l'aide d'une clé gérée par le client, vous devez accorder au rôle de service l'autorisation d'utiliser les clés KMS correspondantes. Cela s'applique aux ressources suivantes :

  • Compartiments S3 : si vous fournissez des ressources d'apprentissage (telles que des documents d'API, des modèles de menaces ou du code source) à partir d'un compartiment S3 chiffré à l'aide d'une clé gérée par le client, le rôle de service a besoin d'autorisations pour déchiffrer les objets de ce compartiment. Pour plus d'informations sur la configuration SSE-KMS pour S3, consultez la section Protection des données avec SSE-KMS.

  • Secrets Manager : si vos identifiants de test d'intrusion sont stockés dans des secrets de Secrets Manager chiffrés à l'aide d'une clé gérée par le client, le rôle de service a besoin d'autorisations pour déchiffrer ces secrets. Pour plus d'informations sur le chiffrement secret, consultez la section Chiffrement secret et déchiffrement dans Secrets Manager.

  • CloudWatch Groupes de journaux : si le groupe de CloudWatch journaux utilisé pour stocker les journaux d'exécution des tests d'intrusion est chiffré à l'aide d'une clé gérée par le client (y compris les groupes de journaux créés par AWS Security Agent en votre nom), le rôle de service doit être kms:DescribeKey autorisé pour valider la clé. Le principal du service CloudWatch Logs gère le chiffrement et le déchiffrement effectifs des données des journaux, et ces autorisations sont accordées par le biais de la politique des clés (voirStratégie de clé). Pour plus d'informations sur le chiffrement des données de journal, voir Chiffrer les données de journal dans les CloudWatch journaux à l'aide AWS de KMS.

Important

Si vous utilisez une clé KMS différente de celle que vous avez spécifiée pour votre espace agent pour chiffrer ces ressources, vous devez accorder des autorisations de rôle de service pour chaque clé KMS qui protège une ressource à laquelle le rôle de service accède lors des tests d'intrusion.

Associez la politique IAM suivante au rôle de service de test d'intrusion. N'incluez que les instructions qui s'appliquent à votre configuration.

Remplacez les valeurs d'espace réservé suivantes dans la politique :

  • 111122223333 — Votre identifiant AWS de compte

  • us-east-1 — La AWS région dans laquelle vous utilisez AWS Security Agent

  • Les ARN de la clé KMS Resource entrés : les ARN des clés gérées par le client utilisées pour chiffrer chaque ressource

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowKmsAccessForEncryptedS3Buckets", "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": [ "arn:aws:kms:us-east-1:111122223333:key/EXAMPLE-S3-KEY-ID" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333" }, "StringLike": { "kms:ViaService": "s3.*.amazonaws.com", "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::YOUR-BUCKET-NAME*" } } }, { "Sid": "AllowKmsAccessForEncryptedSecrets", "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": [ "arn:aws:kms:us-east-1:111122223333:key/EXAMPLE-SECRETS-KEY-ID" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333" }, "StringLike": { "kms:ViaService": "secretsmanager.*.amazonaws.com", "kms:EncryptionContext:SecretARN": "arn:aws:secretsmanager:us-east-1:111122223333:secret:YOUR-SECRET-NAME*" } } }, { "Sid": "AllowKmsKeyValidationForCloudWatchLogsLogGroups", "Effect": "Allow", "Action": [ "kms:DescribeKey" ], "Resource": [ "arn:aws:kms:us-east-1:111122223333:key/EXAMPLE-CLOUDWATCH-LOGS-KEY-ID" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333" }, "StringLike": { "kms:ViaService": "logs.*.amazonaws.com" } } } ] }
Note
  • La AllowKmsAccessForEncryptedS3Buckets déclaration n'est requise que si vous fournissez des ressources d'apprentissage à partir de compartiments S3 chiffrés à l'aide d'une clé gérée par le client. Mettez à jour l'ResourceARN pour qu'il corresponde à la clé KMS utilisée pour chiffrer votre compartiment S3, et mettez à jour la kms:EncryptionContext:aws:s3:arn valeur pour qu'elle corresponde au nom de votre compartiment.

  • La AllowKmsAccessForEncryptedSecrets déclaration n'est requise que si les informations d'identification de votre test d'intrusion sont stockées dans les secrets de Secrets Manager chiffrés à l'aide d'une clé gérée par le client. Mettez à jour l'ResourceARN pour qu'il corresponde à la clé KMS utilisée pour chiffrer vos secrets, et mettez à jour la kms:EncryptionContext:SecretARN valeur pour qu'elle corresponde à votre nom de secret.

  • La AllowKmsKeyValidationForCloudWatchLogsLogGroups déclaration n'est requise que si votre groupe de CloudWatch journaux Logs est chiffré à l'aide d'une clé gérée par le client, y compris les groupes de journaux créés par AWS Security Agent en votre nom. Mettez à jour l'ResourceARN pour qu'il corresponde à la clé KMS utilisée pour chiffrer votre groupe de journaux.

  • Si plusieurs ressources partagent la même clé KMS, vous pouvez combiner les instructions et répertorier l'ARN de la clé partagée une fois Resource sur le terrain.

Création d'une ressource à l'aide d'une clé gérée par le client

Vous pouvez spécifier une clé gérée par le client lors de la configuration AWS de Security Agent ou lors de la création de ressources individuelles. La clé KMS chiffre toutes les données appartenant à cette ressource et à ses sous-ressources.

Définir une clé KMS par défaut lors de l'installation (console)

Vous pouvez configurer une clé KMS par défaut lors de la configuration initiale AWS de l'agent de sécurité. Cette clé est utilisée par défaut pour les nouveaux espaces d'agent et les intégrations, sauf si vous spécifiez une autre clé.

  1. Sur la page Configurer l'agent de sécurité AWS, développez la section Chiffrement - facultatif.

  2. Sélectionnez Personnaliser les paramètres de chiffrement (avancés).

  3. Pour Choisir une clé AWS KMS, sélectionnez une clé KMS dans votre compte ou entrez un ARN de clé KMS.

  4. Effectuez les étapes de configuration restantes et choisissez Configurer AWS Security Agent.

AWS L'agent de sécurité valide la clé KMS pour confirmer qu'elle existe, qu'elle est activée et qu'elle utilise un chiffrement symétrique. Si la validation échoue, l'installation ne se poursuit pas et vous recevez un message d'erreur.

Création d'un espace d'agent avec une clé gérée par le client (console)

  1. Dans la console AWS Security Agent, accédez à la page Agent Spaces.

  2. Choisissez Create Agent Space.

  3. Entrez un nom et une description facultative pour votre espace agent.

  4. Développez la section Avancé.

  5. Sous Chiffrement des données, sélectionnez l'une des options suivantes :

    • Utiliser la clé par défaut de l'application — Utilise la clé KMS par défaut configurée lors AWS de l'installation de l'agent de sécurité. Cette option est sélectionnée par défaut si une clé par défaut est configurée.

    • Utiliser une autre clé : spécifiez une clé KMS différente pour cet espace agent. Sélectionnez Personnaliser les paramètres de chiffrement (avancés), puis pour Choisir une clé AWS KMS, sélectionnez une clé KMS dans votre compte ou entrez un ARN.

  6. Choisissez Créer.

Création d'une intégration à l'aide d'une clé gérée par le client (console)

  1. Dans la console AWS Security Agent, accédez à la page Intégrations.

  2. Choisissez Ajouter une intégration et sélectionnez votre fournisseur (par exemple, GitHub).

  3. Terminez l'étape 1 : installez et autorisez l'application du fournisseur.

  4. À l'étape 2 : informations d'enregistrement, entrez un nom d'enregistrement et configurez les paramètres du fournisseur.

  5. Dans la section Chiffrement des données, sélectionnez Personnaliser les paramètres de chiffrement (avancés).

  6. Pour Choisir une clé AWS KMS, sélectionnez une clé KMS dans votre compte ou entrez un ARN de clé KMS.

  7. Choisissez Se connecter.

Créez une ressource à l'aide d'une clé gérée par le client (AWS CLI ou SDK)

Pour spécifier une clé gérée par le client à l'aide de la AWS CLI ou du SDK :

  • Incluez le defaultKmsKeyId paramètre lors de CreateApplication l'appel pour définir une clé KMS par défaut pour votre application. Cette clé est utilisée comme solution de secours lors de la création d'espaces d'agents ou d'intégrations sans clé KMS explicite.

  • Incluez le kmsKeyId paramètre lors de l'appel CreateAgentSpace ou CreateIntegration pour chiffrer une ressource spécifique. Cela a priorité sur la valeur par défaut au niveau de l'application.

Pour plus de détails sur les paramètres, consultez le document AWS de référence de l'API Security Agent.

Si vous ne spécifiez pas de clé KMS, AWS Security Agent utilise la clé KMS par défaut au niveau de l'application si elle est configurée. Dans le cas contraire, la ressource est chiffrée avec des clés AWS gérées par -managed.

Rotation des clés d'accès

AWS Security Agent fait automatiquement pivoter les clés de branche de façon périodique. La rotation de la clé de branche crée une nouvelle version active de la clé de branche tout en conservant toutes les versions précédentes. Après la rotation :

  • Les nouvelles données sont cryptées avec la nouvelle version de la clé de branche.

  • Les données précédemment chiffrées restent déchiffrables à l'aide de l'ancienne version de clé de branche.

  • Aucun rechiffrement des données n'est requis.

La rotation des clés de branche est distincte de la rotation des clés KMS. Vous pouvez activer la rotation automatique des clés KMS pour votre clé gérée par le client de manière indépendante. Pour plus d'informations, voir Rotation des clés KMS dans le Guide du développeur du service de gestion des AWS clés.

Après une rotation de clé de branche, il existe une brève période pendant laquelle les copies mises en cache de la clé de branche précédente peuvent encore être utilisées pour de nouvelles opérations de chiffrement. Cette fenêtre est déterminée par la durée de vie du cache interne (TTL) et n'affecte pas la sécurité de vos données.

Considérations

Tenez compte des points suivants lorsque vous utilisez des clés gérées par le client avec AWS Security Agent :

  • Les clés gérées par le client s'appliquent uniquement aux nouvelles ressources. Les ressources existantes créées avant de configurer une clé gérée par le client continuent d'utiliser le AWS chiffrement géré par le client. Il n'y a pas de migration des données existantes.

  • Les clés gérées par le client sont spécifiées au moment de la création. Vous spécifiez la clé KMS lors de la création d'une ressource. Vous ne pouvez pas ajouter ou modifier la clé KMS pour une ressource existante.

  • Plusieurs clés KMS sont prises en charge. Vous pouvez utiliser différentes clés KMS pour différentes ressources. Par exemple, vous pouvez utiliser une clé pour les Agent Spaces de production et une autre clé pour les Agent Spaces de développement.

  • La désactivation ou la suppression d'une clé KMS rend les données inaccessibles. Si vous désactivez ou planifiez la suppression d'une clé KMS, AWS Security Agent ne peut pas déchiffrer les données chiffrées sous cette clé. Les ressources affectées deviennent inaccessibles jusqu'à ce que la clé soit réactivée. La suppression d'une clé KMS empêche définitivement l'accès à toutes les données chiffrées sous cette clé.

  • Les principales autorisations politiques sont requises. Si vous supprimez les autorisations requises de votre politique de clés KMS, AWS Security Agent ne peut pas accéder aux données chiffrées. Assurez-vous que la politique clé accorde des autorisations pour le rôle d'administrateur (utilisé pour gérer le service dans la AWS console), le rôle d'application (utilisé par l'application Web), le rôle de service de test d'intrusion (assumé par les agents pour exécuter les tests d'intrusion) et le rôle principal du service AWS Security Agent, comme décrit dansAutorisations KMS requises.

  • AWS Les quotas KMS s'appliquent. Les opérations cryptographiques effectuées sur votre clé KMS sont prises en compte dans le calcul de vos quotas de demandes AWS KMS. Dans des conditions normales d'utilisation, l'architecture hiérarchique du trousseau de clés minimise les appels KMS grâce à la mise en cache des clés de branche. Pour plus d'informations, consultez la section Demander des quotas dans le Guide du développeur du service de gestion des AWS clés.