Bibliothèque de client chiffrement d’objets blob de stockage Azure pour Java - version 12.23.1
Le stockage Blob Azure est la solution de stockage d’objet de Microsoft pour le cloud. Stockage Blob est optimisé pour le stockage d’immenses quantités de données non structurées. Les données non structurées sont des données qui n’obéissent pas à un modèle ou une définition de données en particulier, comme des données texte ou binaires. Ce package prend en charge le chiffrement côté client pour le stockage d’objets blob.
| Code sourceDocumentation de référence sur les | APIDocumentation | sur l’API REST | Documentation produitÉchantillons
Prise en main
Prérequis
- Kit de développement Java (JDK) avec la version 8 ou ultérieure
- Abonnement Azure
- Créer un compte de stockage
Inclure le package
Inclure le fichier de nomenclature
Incluez azure-sdk-bom dans votre projet pour dépendre de la version ga de la bibliothèque. Dans l’extrait de code suivant, remplacez l’espace réservé {bom_version_to_target} par le numéro de version. Pour en savoir plus sur la nomenclature, consultez le README BOM du KIT DE DÉVELOPPEMENT LOGICIEL AZURE.
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-sdk-bom</artifactId>
<version>{bom_version_to_target}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Incluez ensuite la dépendance directe dans la section des dépendances sans la balise de version.
<dependencies>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-storage-blob-cryptography</artifactId>
</dependency>
</dependencies>
Inclure une dépendance directe
Si vous souhaitez dépendre d’une version particulière de la bibliothèque qui n’est pas présente dans la nomenclature, ajoutez la dépendance directe à votre projet comme suit.
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-storage-blob-cryptography</artifactId>
<version>12.23.1</version>
</dependency>
Créer un compte de stockage
Pour créer un compte de stockage, vous pouvez utiliser le portail Azure ou Azure CLI.
az storage account create \
--resource-group <resource-group-name> \
--name <storage-account-name> \
--location <location>
Authentifier le client
Pour interagir avec le service de stockage (Blob, File d’attente, Message, MessageId, Fichier), vous devez créer un instance de la classe Service Client. Pour ce faire, vous aurez besoin de la chaîne SAS de compte (signature d’accès partagé) du compte de stockage. Pour en savoir plus, consultez Jeton SAS
Récupérer les informations d’identification
- Jeton SAS
a. Utilisez l’extrait de code Azure CLI ci-dessous pour obtenir le jeton SAS à partir du compte de stockage.
az storage blob generate-sas \
--account-name {Storage Account name} \
--container-name {container name} \
--name {blob name} \
--permissions {permissions to grant} \
--expiry {datetime to expire the SAS token} \
--services {storage services the SAS allows} \
--resource-types {resource types the SAS allows}
Exemple :
CONNECTION_STRING=<connection-string>
az storage blob generate-sas \
--account-name MyStorageAccount \
--container-name MyContainer \
--name MyBlob \
--permissions racdw \
--expiry 2020-06-15
b. Vous pouvez également obtenir le jeton SAP du compte à partir du portail Azure.
- Accédez à votre compte de stockage
- Sélectionnez
Shared access signature
dans le menu de gauche - Cliquez sur
Generate SAS and connection string
(après l’installation)
Informations d’identification de clé partagée
a. Utilisez Le nom du compte et la clé de compte. Nom du compte est le nom de votre compte de stockage.
- Accédez à votre compte de stockage
- Sélectionnez
Access keys
dans le menu de gauche - Sous
key1
/key2
copier le contenu duKey
champ
ou
b. Utilisez le chaîne de connexion.
- Accédez à votre compte de stockage
- Sélectionnez
Access keys
dans le menu de gauche - Sous
key1
/key2
copier le contenu duConnection string
champ
Concepts clés
Le stockage Blob est conçu pour :
- Mise à disposition d’images ou de documents directement dans un navigateur.
- Stockage de fichiers pour un accès distribué.
- Diffusion en continu de vidéo et d’audio.
- Écriture dans les fichiers journaux.
- Stockage de données pour la sauvegarde et la restauration, la récupération d’urgence et l’archivage.
- Stockage des données pour l’analyse par un service local ou hébergé par Azure.
Exemples
Remarque : L’utilisation de EncryptedBlobClient
est identique à l’équivalent BlobClient
, la seule différence étant la construction du client.
Reportez-vous à pour azure-storage-blob
connaître les cas d’usage courants du BlobClient
Les sections suivantes fournissent plusieurs extraits de code couvrant certaines des tâches de création de chiffrement d’objets blob stockage Azure les plus courantes, notamment :
- Créer un à partir d’un
EncryptedBlobClient
BlobClient
- Créer un
EncryptedBlobClient
- Utiliser un
LocalKeyEncryptionKey
- Utiliser un
KeyVaultKey
Créer un à partir d’un EncryptedBlobClient
BlobClient
Créez un à l’aide EncryptedBlobClient
d’un BlobClient
. BlobClient
la construction est expliquée dans le azure-storage-blob
FICHIER LISEZ-MOI.
EncryptedBlobClient client = new EncryptedBlobClientBuilder()
.key(key, keyWrapAlgorithm)
.keyResolver(keyResolver)
.blobClient(blobClient)
.buildEncryptedBlobClient();
Créer un EncryptedBlobClient
Créez un à BlobServiceClient
l’aide d’un chaîne de connexion.
EncryptedBlobClient client = new EncryptedBlobClientBuilder()
.key(key, keyWrapAlgorithm)
.keyResolver(keyResolver)
.connectionString(connectionString)
.containerName(containerName)
.blobName(blobName)
.buildEncryptedBlobClient();
Utiliser un local KeyEncryptionKey
JsonWebKey localKey = JsonWebKey.fromAes(new SecretKeySpec(keyBytes, secretKeyAlgorithm),
Arrays.asList(KeyOperation.WRAP_KEY, KeyOperation.UNWRAP_KEY))
.setId("my-id");
AsyncKeyEncryptionKey akek = new KeyEncryptionKeyClientBuilder()
.buildAsyncKeyEncryptionKey(localKey).block();
EncryptedBlobClient client = new EncryptedBlobClientBuilder()
.key(akek, keyWrapAlgorithm)
.connectionString(connectionString)
.containerName(containerName)
.blobName(blobName)
.buildEncryptedBlobClient();
Utiliser un KeyVaultKey
KeyClient keyClient = new KeyClientBuilder()
.vaultUrl(keyVaultUrl)
.credential(tokenCredential)
.buildClient();
KeyVaultKey rsaKey = keyClient.createRsaKey(new CreateRsaKeyOptions(keyName)
.setExpiresOn(OffsetDateTime.now().plusYears(1))
.setKeySize(2048));
AsyncKeyEncryptionKey akek = new KeyEncryptionKeyClientBuilder()
.credential(tokenCredential)
.buildAsyncKeyEncryptionKey(rsaKey.getId())
.block();
EncryptedBlobClient client = new EncryptedBlobClientBuilder()
.key(akek, keyWrapAlgorithm)
.connectionString(connectionString)
.containerName(containerName)
.blobName(blobName)
.buildEncryptedBlobClient();
Dépannage
Lorsque vous interagissez avec des objets blob à l’aide de cette bibliothèque cliente Java, les erreurs retournées par le service correspondent aux mêmes codes de status HTTP retournés pour les demandes d’API REST. Par exemple, si vous essayez de récupérer un conteneur ou un objet blob qui n’existe pas dans votre compte de stockage, une 404
erreur est retournée, indiquant Not Found
.
Client HTTP par défaut
Toutes les bibliothèques de client utilisent par défaut le client HTTP Netty. L’ajout de la dépendance ci-dessus configure automatiquement la bibliothèque de client pour utiliser le client HTTP Netty. La configuration ou la modification du client HTTP sont détaillées dans le wiki pour clients HTTP.
Bibliothèque SSL par défaut
Toutes les bibliothèques de client utilisent par défaut la bibliothèque BoringSSL Tomcat native pour permettre des performances de niveau natif pour les opérations SSL. La bibliothèque BoringSSL est un fichier uber jar contenant des bibliothèques natives pour Linux/macOS/Windows. Elle offre de meilleures performances que l’implémentation SSL par défaut au sein du JDK. Pour plus d’informations, notamment sur la réduction de la taille des dépendances, consultez la section du wiki consacrée à l’optimisation des performances.
Étapes suivantes
Contribution
Ce projet accepte les contributions et les suggestions. La plupart des contributions vous demandent d’accepter un contrat de licence de contribution (CLA) déclarant que vous avez le droit de nous accorder, et que vous nous accordez réellement, les droits d’utilisation de votre contribution. Pour plus d’informations, visitez https://cla.microsoft.com.
Quand vous envoyez une demande de tirage (pull request), un bot CLA détermine automatiquement si vous devez fournir un contrat CLA et agrémenter la demande de tirage de façon appropriée (par exemple, avec une étiquette ou un commentaire). Suivez simplement les instructions fournies par le bot. Vous ne devez effectuer cette opération qu’une seule fois sur tous les dépôts utilisant notre contrat CLA.
Ce projet a adopté le Code de conduite Open Source de Microsoft. Pour plus d’informations, consultez les Questions fréquentes (FAQ) sur le code de conduite ou envoyez vos questions ou vos commentaires à opencode@microsoft.com.