Configurer les actions clés du magasin - AWS Encryption SDK

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.

Configurer les actions clés du magasin

Les actions du magasin de clés déterminent les opérations que vos utilisateurs peuvent effectuer et la manière dont leur trousseau de clés AWS KMS hiérarchique utilise les KMS clés autorisées répertoriées dans votre magasin de clés. AWS Encryption SDK prend en charge les configurations d'actions de stockage de clés suivantes.

Statique

Lorsque vous configurez votre magasin de clés de manière statique, celui-ci ne peut utiliser que la KMS clé associée à la KMS clé que ARN vous avez fournie kmsConfiguration lors de la configuration des actions de votre magasin de clés. Une exception est déclenchée si une KMS clé différente ARN est détectée lors de la création, de la gestion des versions ou de l'obtention d'une clé de branche.

Vous pouvez spécifier une KMS clé multirégionale dans votrekmsConfiguration, mais l'intégralité de la cléARN, y compris la région, est conservée dans les clés de branche dérivées de la KMS clé. Vous ne pouvez pas spécifier de clé dans une autre région, vous devez fournir exactement la même clé multirégionale pour que les valeurs correspondent.

Lorsque vous configurez de manière statique les actions de votre magasin de clés, vous pouvez effectuer des opérations d'utilisation (GetActiveBranchKeyGetBranchKeyVersion,,GetBeaconKey) et des opérations administratives (CreateKeyetVersionKey). CreateKeyest une opération privilégiée qui permet d'ajouter une nouvelle KMS clé ARN à votre liste d'autorisations de stockage de clés. Cette KMS clé peut créer de nouvelles clés de branche actives. Nous recommandons de limiter l'accès à cette opération car une fois qu'une KMS clé est ajoutée au magasin de clés, elle ne peut pas être supprimée.

Découverte

Lorsque vous configurez les actions de votre magasin de clés pour la découverte, le magasin de clés peut utiliser toutes AWS KMS key ARN les actions autorisées dans votre magasin de clés. Toutefois, une exception est déclenchée lorsqu'une KMS clé multirégionale est détectée et que la région de la clé ARN ne correspond pas à la région du AWS KMS client utilisé.

Lorsque vous configurez votre banque de clés pour la découverte, vous ne pouvez pas effectuer d'opérations administratives telles que CreateKey etVersionKey. Vous ne pouvez effectuer que les opérations d'utilisation qui permettent de chiffrer, de déchiffrer, de signer et de vérifier. Pour de plus amples informations, veuillez consulter Implémentation des autorisations avec le moindre privilégié.

Configurez les actions clés de votre boutique

Avant de configurer les actions de votre magasin de clés, assurez-vous que les conditions préalables suivantes sont remplies.

  • Déterminez les opérations que vous devez effectuer. Pour de plus amples informations, veuillez consulter Implémentation des autorisations avec le moindre privilégié.

  • Choisissez un nom de magasin de clés logique

    Il doit y avoir un one-to-one mappage entre le nom de la table DynamoDB et le nom du magasin de clés logiques. Le nom du magasin de clés logique est lié de manière cryptographique à toutes les données stockées dans la table afin de simplifier les opérations de restauration DynamoDB. Il ne peut pas être modifié une fois défini initialement par le premier utilisateur. Vous devez toujours spécifier le même nom logique de banque de clés dans les actions de votre banque de clés. Pour de plus amples informations, veuillez consulter logical key store name.

L'exemple suivant configure de manière statique les actions du magasin de clés. Vous devez spécifier le nom de la table DynamoDB qui sert de magasin de clés, un nom logique pour le magasin de clés et KMS la clé identifiant une ARN clé de chiffrement symétrique. KMS

Note

Prenez bien en compte la KMS clé ARN que vous spécifiez lors de la configuration statique de votre service de magasin de clés. L'CreateKeyopération ajoute la KMS clé ARN à la liste d'autorisation de votre magasin de clés de succursale. Une fois qu'une KMS clé est ajoutée au magasin de clés de la succursale, elle ne peut pas être supprimée.

Java
final KeyStore keystore = KeyStore.builder().KeyStoreConfig( KeyStoreConfig.builder() .ddbClient(DynamoDbClient.create()) .ddbTableName(keyStoreName) .logicalKeyStoreName(logicalKeyStoreName) .kmsClient(KmsClient.create()) .kmsConfiguration(KMSConfiguration.builder() .kmsKeyArn(kmsKeyArn) .build()) .build()).build();
C# / .NET
var kmsConfig = new KMSConfiguration { KmsKeyArn = kmsKeyArn }; var keystoreConfig = new KeyStoreConfig { KmsClient = new AmazonKeyManagementServiceClient(), KmsConfiguration = kmsConfig, DdbTableName = keyStoreName, DdbClient = new AmazonDynamoDBClient(), LogicalKeyStoreName = logicalKeyStoreName }; var keystore = new KeyStore(keystoreConfig);
Python
keystore: KeyStore = KeyStore( config=KeyStoreConfig( ddb_client=ddb_client, ddb_table_name=key_store_name, logical_key_store_name=logical_key_store_name, kms_client=kms_client, kms_configuration=KMSConfigurationKmsKeyArn( value=kms_key_id ), ) )

L'exemple suivant configure les actions du magasin de clés pour la découverte. Vous devez spécifier le nom de la table DynamoDB qui sert de magasin de clés et un nom de magasin de clés logique.

Java
final KeyStore keystore = KeyStore.builder().KeyStoreConfig( KeyStoreConfig.builder() .ddbClient(DynamoDbClient.create()) .ddbTableName(keyStoreName) .logicalKeyStoreName(logicalKeyStoreName) .kmsClient(KmsClient.create()) .kmsConfiguration(KMSConfiguration.builder() .discovery(Discovery.builder().build()) .build()) .build()).build();
C# / .NET
var keystoreConfig = new KeyStoreConfig { KmsClient = new AmazonKeyManagementServiceClient(), KmsConfiguration = new KMSConfiguration {Discovery = new Discovery()}, DdbTableName = keyStoreName, DdbClient = new AmazonDynamoDBClient(), LogicalKeyStoreName = logicalKeyStoreName }; var keystore = new KeyStore(keystoreConfig);
Python
keystore: KeyStore = KeyStore( config=KeyStoreConfig( ddb_client=ddb_client, ddb_table_name=key_store_name, logical_key_store_name=logical_key_store_name, kms_client=kms_client, kms_configuration=KMSConfigurationDiscovery( value=Discovery() ), ) )