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.
Associer des licences à des produits AMI basés à l'aide de AWS License Manager
Pour les produits basés sur Amazon Machine Image (AMI) assortis de tarifs contractuels, vous pouvez utiliser AWS License Manager pour associer des licences à votre produit. AWS License Manager est un outil de gestion des licences qui permet à votre application de suivre et de mettre à jour les licences (également appelées droits) achetées par un client. Une fois l'intégration terminée, vous pouvez publier votre liste de produits sur AWS Marketplace. Les sections suivantes fournissent plus d'informations sur l'utilisation AWS License Manager pour associer des licences AMI à votre produit basé.
Pour plus d'informations AWS License Manager, reportez-vous au guide de l'AWS License Manager utilisateur et à la AWS License Managersection du manuel de référence des AWS CLI commandes.
Note
-
Les clients ne peuvent pas lancer de nouvelles instances AMI après la période d'expiration du contrat. Toutefois, pendant la durée du contrat, ils peuvent lancer autant d'instances que nécessaire. Ces licences ne sont pas bloquées par un nœud ni liées à des instances particulières.
-
Création d'offres privées — Les vendeurs peuvent générer des offres privées pour les produits à l'aide de l'outil de création d'offres privées du Portail de gestion AWS Marketplace.
-
Rapports — Vous pouvez configurer des flux de données en configurant un compartiment Amazon S3 dans la section Rapport du Portail de gestion AWS Marketplace. Pour plus d’informations, consultez Rapports sur les vendeurs, flux de données et tableaux de bord dans AWS Marketplace.
Rubriques
Modèles de licence
AWS Marketplace l'intégration AWS License Manager prend en charge deux modèles de licence :
Modèle de licence configurable
Le modèle de licence configurable (également connu sous le nom de modèle de licence quantifiable) donne droit à un acheteur à une quantité spécifique de ressources une fois qu'il a acheté une licence.
Vous définissez une dimension tarifaire et un prix unitaire. L'acheteur peut ensuite choisir la quantité de ressources qu'il souhaite acheter.
Exemple de la dimension tarifaire et du prix unitaire
Vous pouvez définir une dimension tarifaire (telle que la sauvegarde des données) et un prix unitaire (tel que 30 $/unité)
L'acheteur peut choisir d'acheter 5, 10 ou 20 unités.
Votre produit suit et mesure l'utilisation pour mesurer la quantité de ressources consommées.
Avec le modèle de configuration, les droits sont comptés de deux manières :
Licences Drawdown
La licence est extraite du pool de licences autorisé lors de l'utilisation. Ce droit est définitivement retiré et ne peut pas être restitué au pool de licences.
Exemple du traitement d'une quantité limitée de données
Un utilisateur a le droit de traiter 500 Go de données. Au fur et à mesure qu'ils continuent à traiter les données, la quantité est prélevée dans le pool de 500 Go jusqu'à ce que toutes les licences de 500 Go soient consommées.
Pour les licences de prélèvement, vous pouvez utiliser l'CheckoutLicense
APIopération pour vérifier les unités de licence consommées.
Exemple de sauvegarde vers S3 pour un certain nombre d'unités/an
Vous disposez d'un produit de stockage qui permet de sauvegarder des données sur Amazon Simple Storage Service (Amazon S3) pour un maximum de 1024 unités de données pendant un an. Votre application peut être lancée à l'aide de plusieurs EC2 instances Amazon. Votre application dispose d'un mécanisme permettant de suivre et d'agréger les données. Votre logiciel appelle l'CheckoutLicense
APIopération avec l'identifiant du produit à chaque sauvegarde ou à intervalles réguliers pour mettre à jour les quantités consommées.
Dans cet exemple, votre logiciel appelle CheckoutLicense
pour extraire 10 unités de données. Lorsque la capacité totale atteint la limite de sauvegarde achetée par le client, l'APIappel échoue.
Demande
linux-machine ~]$ aws license-manager checkout-license\ --product-sku "2205b290-19e6-4c76-9eea-377d6bf7la47" \ --checkout-type "PERPETUAL" \ --key-fingerprint "aws:294406891311:AWS/Marketplace:issuer-fingerprint" \ --entitlements "Name=DataConsumption, Value=l0, Unit=Count" \ --client-token "AKIAIOSFODNN7EXAMPLE"
Réponse
{ "CheckoutType": "PERPETUAL", "EntitlementsAllowed": [ { "Name": "DataConsumption", "Count": 10, "Units": "Count", "Value": "Enabled" } }, "Expiration": "2021-04-22Tl9:02: 36", "IssuedAt": "2021-04-22Tl8:02:36", "LicenseArn": "arn:aws:license-manager::294406891311:license:l-16bf01b...", "LicenseConsumptionToken": "AKIAIOSFODNN7EXAMPLE" }
Licences flottantes
La licence est renvoyée dans le pool contenant le nombre de licences autorisé après utilisation.
Exemple du nombre d'utilisateurs par rapport à une limite supérieure fixe
Un utilisateur a droit à 500 utilisateurs simultanés sur l'application. Au fur et à mesure que les utilisateurs se connectent et se déconnectent, les utilisateurs sont tirés au sort et renvoyés dans le pool de 500 utilisateurs. Cependant, l'application ne peut pas attirer plus de 500 utilisateurs du pool car 500 utilisateurs simultanés constituent la limite supérieure fixe.
Pour les licences flottantes, vous pouvez utiliser l'CheckInLicense
APIopération pour renvoyer les unités de licence dans le pool de droits.
Exemple du nombre d'utilisateurs simultanés pendant un an
Le prix de votre produit est basé sur le nombre d'utilisateurs simultanés. Le client achète une licence pour 10 utilisateurs pendant un an. Le client lance le logiciel en fournissant des autorisations AWS Identity and Access Management (IAM). Lorsqu'un utilisateur se connecte, votre application lance l'CheckoutLicense
APIopération pour réduire la quantité de 1. Lorsque l'utilisateur se déconnecte, l'application renvoie cette licence au pool en appelant l'CheckInLicense
APIopération. Si vous n'appelez pasCheckInLicense
, l'unité de licence sera automatiquement enregistrée au bout d'une heure.
Note
Dans la demande suivante, il ne s'key-fingerprint
agit pas d'une valeur d'espace réservé mais de la valeur réelle de l'empreinte digitale avec laquelle toutes les licences seront publiées.
Demande
linux-machine ~]$ aws license-manager checkout-license\ --product-sku "2205b290-19e6-4c76-9eea-377d6bf7la47" \ --checkout-type "PROVISIONAL" \ --key-fingerprint "aws:294406891311:AWS/Marketplace:issuer-fingerprint" \ --entitlements "Name=ReadOnlyUSers, Value=l0, Unit=Count" \ --client-token "AKIAIOSFODNN7EXAMPLE"
Réponse
{ "CheckoutType": "PROVISIONAL", "EntitlementsAllowed": [ { "Name": "ReadOnlyUsers", "Count": 10, "Units": "Count", "Value": "Enabled" } }, "Expiration": "2021-04-22Tl9:02: 36", "IssuedAt": "2021-04-22Tl8:02:36", "LicenseArn": "arn:aws:license-manager::294406891311:license:l-16bf01b...", "LicenseConsumptionToken": "AKIAIOSFODNN7EXAMPLE" }
Modèle de licence à plusieurs niveaux
Le modèle de licence hiérarchisée permet à un acheteur d'accéder à un niveau spécifique, ou niveau, de fonctionnalités de l'application une fois qu'il a acheté une licence.
Vous créez des niveaux pour votre produit, tels que Basic, Intermediate et Premium. L'acheteur sélectionne ensuite l'un des niveaux prédéfinis.
L'application n'a pas besoin de suivre ou de mesurer l'utilisation de l'application.
Avec le modèle de licence à plusieurs niveaux, les droits ne sont pas pris en compte mais indiquent un niveau de service acheté par le client.
Si vous souhaitez proposer des fonctionnalités groupées, nous vous recommandons d'utiliser le modèle de licence hiérarchisée.
Exemple des niveaux de base, intermédiaire et premium
Un client peut signer un contrat pour l'un des trois niveaux possibles du logiciel : Basic, Intermediate ou Premium. Chacun de ces niveaux a sa propre tarification. Votre logiciel peut identifier le niveau auquel le client s'est inscrit en invoquant l'CheckoutLicense
APIopération et en spécifiant tous les niveaux possibles dans la demande.
La réponse à la demande contient le droit correspondant au niveau que le client a acheté. Sur la base de ces informations, le logiciel peut fournir une expérience client appropriée.
Demande
linux-machine ~]$ aws license-manager checkout-license\ --product-sku "2205b290-19e6-4c76-9eea-377d6bf7la47" \ --checkout-type "PROVISIONAL" \ --key-fingerprint "aws:294406891311:AWS/Marketplace:issuer-fingerprint" \ --entitlements "Name=BasicTier, Unit=None" "Name=IntermediateTier, Unit=None" \ "Name=PremiumTier, Unit=None"
Réponse
{ "CheckoutType": "PROVISIONAL", "EntitlementsAllowed": [ { "Name": "IntermediateTier", "Units": "None" } }, "Expiration": "2021-04-22Tl9:02:36", "IssuedAt": "2021-04-22Tl8:02:36", "LicenseArn": "arn:aws:license-manager::294406891311:license:l-16bf01b...", "LicenseConsumptionToken": "AKIAIOSFODNN7EXAMPLE" }
Flux de travail d'intégration
Les étapes suivantes présentent le flux de travail permettant d'intégrer votre AMI produit à AWS License Manager :
-
Le vendeur crée un produit avec AWS License Manager intégration.
-
Le vendeur met en vente le produit sur AWS Marketplace.
-
L'acheteur trouve le produit dessus AWS Marketplace et l'achète.
-
Une licence est envoyée à l'acheteur dans son Compte AWS.
-
L'acheteur utilise le logiciel en lançant l'instance Amazon Elastic Compute Cloud (AmazonEC2), la tâche Amazon Elastic Container Service (AmazonECS) ou le module Amazon Elastic Kubernetes Service (EKSAmazon). Le client déploie en utilisant un rôle. IAM
-
Le logiciel lit la licence enregistrée sur le AWS License Manager compte de l'acheteur, découvre les droits achetés et fournit les fonctionnalités en conséquence.
Note
License Manager n'effectue aucun suivi ni aucune mise à jour ; cela est effectué par l'application du vendeur.
Conditions préalables à l'intégration de License Manager
Avant de publier le produit, vous devez effectuer les opérations suivantes :
-
Créez un nouveau AMI produit dans le Portail de gestion AWS Marketplace, et notez son code produit.
-
Remplissez le formulaire de chargement du produit (PLF) avec les informations de prix nécessaires et retournez-le pour traitement.
-
Utilisez un IAM rôle pour la tâche ou le module exécutant votre application avec les IAM autorisations nécessaires pour appeler
CheckoutLicense
ExtendLicenseConsumption
, etCheckInLicense
.Les IAM autorisations requises sont détaillées dans la IAM politique suivante.
{ "Version":"2012-10-17", "Statement":[ { "Sid":"VisualEditorO", "Effect":"Allow", "Action":[ "license-manager:CheckoutLicense", "license-manager:GetLicense", "license-manager:CheckInLicense", "license-manager:ExtendLicenseConsumption", "license-manager:ListReceivedLicenses" ], "Resource":"*" } ] }
-
Passez un appel test à l'
RegisterUsage
APIopération avec un enregistrement de toutes les dimensions de tarification que vous avez définies.
Intégrer un produit AMI basé sur AWS License Manager
Vous pouvez intégrer votre produit AMI basé à License Manager à l'aide du AWS License ManagerAPI. Lancez les EC2 instances Amazon à l'aide AWS Marketplace AMI de produits basés.
Note
Assurez-vous d'avoir terminé le Conditions préalables à l'intégration de License Manager avant d'exécuter la procédure suivante.
Pour intégrer votre produit AMI basé à License Manager
-
Exécutez la procédure dans Création d'une licence de test dans License Manager. Vous devez créer une licence de test dans License Manager pour tester votre intégration.
-
Exécutez l'GetLicenseAPIopération en utilisant la licence Amazon Resource Name (ARN) que vous avez obtenue à l'étape 1. Notez la valeur de l'
KeyFingerprint
attribut de laGetLicense
réponse pour une utilisation ultérieure. -
Téléchargez et incluez la dernière version publique AWS SDK dans votre application.
-
Pour vérifier que l'acheteur est autorisé à utiliser une licence pour votre application, exécutez l'CheckoutLicenseAPIopération. Utilisez les détails des droits et l'empreinte clé de la licence de test que vous avez obtenue à l'étape 1.
Si aucun droit n'est trouvé pour la licence ou si le nombre maximum d'autorisations est dépassé, l'
CheckoutLicense
APIopération revient.NoEntitlementsAllowedException
Si les droits sont valides ou peuvent être utilisés, l'CheckoutLicense
opération renvoie une réponse réussie avec les droits demandés et leurs valeurs. -
(Obligatoire pour les droits flottants uniquement) Exécutez l'CheckinLicenseAPIopération en utilisant celui
LicenseConsumptionToken
qui a été reçu dans laCheckoutLicense
réponse. Cette action permet de réintégrer les droits précédemment retirés dans le pool des droits disponibles. -
Après avoir vérifié avec succès l'intégration de License Manager avec la licence de test que vous avez créée à l'étape 1, mettez à jour l'empreinte de clé de votre code sur
aws:294406891311:AWS/Marketplace:issuer-fingerprint
. Vous êtes maintenant prêt à travailler avec les licences émises par AWS Marketplace.
Suivez le processus de publication qui consiste à créer l'application pour un AMI produit, puis soumettez le produit au processus de publication du produit en AWS Marketplace suivant le processus de publication du produit.
Création d'une licence de test dans License Manager
Vous utilisez la version 2 de AWS Command Line Interface (AWS CLI) pour créer une licence de test dans AWS License Manager. Cette licence de test est uniquement utilisée pour vérifier et tester l' AWS License Manager intégration. Une fois le test terminé, vous pouvez supprimer la licence de test. La licence réelle est générée à l' AWS Marketplace aide d'une empreinte numérique différente.
AWS Marketplace prend en charge deux types de droits dans. AWS License Manager Toutefois, un seul type peut être activé pour un produit. Lorsque vous créez une licence, y compris une licence de test, vous devez spécifier l'un des types de droits suivants :
Droits à plusieurs niveaux : le modèle de licence à plusieurs niveaux permet au client d'accéder à certaines fonctionnalités de l'application. Les clients ne peuvent pas définir la quantité d'unités qu'ils souhaitent acheter. Ils peuvent toutefois sélectionner un seul package ou niveau prédéfini. Les clients peuvent modifier le contrat ultérieurement pour s'abonner à un autre niveau.
Droits configurables — Le modèle de licence configurable accorde des droits à une certaine quantité de ressources lorsque le client achète une licence. Le client choisit la quantité d'unités qu'il souhaite acheter pendant le processus d'abonnement et sera facturé en fonction du prix unitaire. Les clients peuvent également s'abonner à plusieurs dimensions.
Les paramètres requis pour une utilisation dans le cadre de l'CheckoutLicense
APIopération sont les suivants :
-
CheckoutType
— Les valeurs valides sontPerpetual
ouProvisional
:-
Perpetual
— Utilisé lorsque le nombre de droits retirés sera épuisé du pool. Exemple : l'acheteur a le droit de traiter 500 Go de données. Au fur et à mesure qu'ils continuent à traiter les données, la quantité est prélevée et épuisée du pool de 500 Go. Obtient le statut d'une licence achetée indiquant si la licence est expirée ou sur le point d'expirer pour envoyer une notification au client. -
Provisional
— Utilisé pour les droits de licence flottants où les droits sont retirés du pool et renvoyés après utilisation. Exemple : l'utilisateur a droit à 500 utilisateurs simultanés dans l'application. Au fur et à mesure que les utilisateurs se connectent et se déconnectent, les utilisateurs sont tirés au sort et renvoyés dans le pool de 500 utilisateurs. Pour plus d'informations sur les droits de licence flottants, consultez la section Licences émises par le vendeur dans AWS License Manager.
-
-
ClientToken
— Identifiant unique distinguant majuscules et minuscules pour garantir que le résultat exact est le même quel que soit le nombre de tentatives. Nous vous recommandons d'utiliser un identifiant unique universel aléatoire (UUID) pour chaque demande. -
Entitlements
— Liste des droits à vérifier.-
Pour les droits échelonnés, fournissez
Name
etUnit
propriétés comme suit :{
"Name": "<
Entitlement_Name
>","Unit": "
None
"}
-
Pour les droits configurables
Name
Unit
, fournissez etValue
propriétés comme suit :{
"Name": "<
Entitlement_Name
>","Unit": "<
Entitlement_Unit
>","Value": <
Desired_Count
>{}
-
-
KeyFingerprint
— Utilisez cette empreinte digitale pour vérifier que la licence est délivrée par AWS Marketplace. L'empreinte clé des licences délivrées par AWS Marketplace est la suivante :aws:294406891311:AWS/Marketplace:issuer-fingerprint
-
Product SKU
— Identifiant de produit au format d'identifiant global unique (GUID) associé à un AWS Marketplace produit.
Exemple d'un droit configurable
Voici un exemple de demande qui utilise l'CheckoutLicense
APIopération pour extraire un droit configurable nomméPowerUsers
.
aws license-manager checkout-license \ product-sku "2205b290-19e6-4c76-9eea-377d6bf71a47" \ checkout-type "PROVISIONAL" \ client-token "79464194dca9429698cc774587a603a1" \"Statement":[ entitlements "Name=PowerUsers,Value=1,Unit=Count" \ key-fingerprint "aws:294406891311:AWS/Marketplace:issuer-fingerprint"
Exemple d'un droit à plusieurs niveaux
Voici un exemple de demande qui utilise l'CheckoutLicense
APIopération pour extraire un droit de fonctionnalité nomméEnterpriseEdition
.
aws license-manager checkout-license \ --product-sku "2205b290-19e6-4c76-9eea-377d6bf71a47" \ --checkout-type "PROVISIONAL" \ --client-token "79464194dca9429698cc774587a603a1" \ --entitlements "Name=EnterpriseEdition,Unit=None" \ --key-fingerprint "aws:294406891311:AWS/Marketplace:issuer-fingerprint"
Pour créer une licence de test pour votre produit AMI basé
-
À partir de votre environnement local sur lequel la AWS CLI version v2 est installée, exécutez le script suivant. Le script crée la licence de test et configure les détails appropriés du produit.
Note
Utilisez un test Compte AWS différent de celui Compte AWS dans lequel vous déployez et testez votre logiciel. Les licences ne peuvent pas être créées, accordées et retirées de la même manière Compte AWS.
#!/bin/bash # Replace with intended product ID on AWS Marketplace PRODUCT_ID=<REPLACE-WITH-PRODUCT-ID> # Replace with license recipient's AWS Account ID BENEFICIARY_ACCOUNT_ID=<REPLACE-WITH-BENEFICIARY-ACCOUNT-ID> # Replace with your product's name PRODUCT_NAME="Test Product" # Replace with your seller name on AWS Marketplace SELLER_OF_RECORD="Test Seller" # Replace with intended license name LICENSE_NAME="AWSMP Test License" # Replace the following with desired contract dimensions # More info here: https://docs.aws.amazon.com/license-manager/latest/APIReference/API_Entitlement.html # Example "configurable entitlement" ENTITLEMENTS='[ { "Name": "ReadOnly", "MaxCount": 5, "Overage": false, "Unit": "Count", "AllowCheckIn": true } ]' # Example "tiered entitlement" # ENTITLEMENTS='[ # { # "Name": "EnterpriseUsage", # "Value": "Enabled", # "Unit": "None" # } # ]' # Format "yyyy-mm-ddTHH:mm:ss.SSSZ" # This creates a validity period of 10 days starting the current day # Can be updated to desired dates VALIDITY_START=$(date +%Y-%m-%dT%H:%M:%S.%SZ) VALIDITY_END=$(date --date="+10 days" +%Y-%m-%dT%H:%M:%S.%SZ) # Configuration for consumption of the license as set on Marketplace products CONSUMPTION_CONFIG='{ "RenewType": "None", "ProvisionalConfiguration": { "MaxTimeToLiveInMinutes": 60 } }' # License's home Region HOME_REGION=us-east-1 # License issuer's name ISSUER=Self # Run AWS CLI command to create a license aws license-manager create-license \ --license-name "${LICENSE_NAME}" \ --product-name "${PRODUCT_NAME}" \ --product-sku "${PRODUCT_ID}" \ --issuer Name="${ISSUER}" \ --beneficiary "${BENEFICIARY_ACCOUNT_ID}" \ --validity 'Begin="'"${VALIDITY_START}"'",End="'"${VALIDITY_END}"'"' \ --entitlements "${ENTITLEMENTS}" \ --home-region "${HOME_REGION}" \ --region "${HOME_REGION}" \ --consumption-configuration "${CONSUMPTION_CONFIG}" \ --client-token $(uuidgen)
-
Accordez la licence à l'aide de la AWS License Manager console. Pour plus d'informations, consultez la section distribuer un droit dans le Guide de l'utilisateur du License Manager.
-
Connectez-vous au compte Compte AWS qui fait office de compte acheteur sur lequel vous déploierez et testerez votre logiciel. Il doit être Compte AWS différent de celui Compte AWS qui a créé et accordé la licence.
-
Accédez à la AWS License Manager console pour accepter et activer les licences accordées. Pour plus d'informations, consultez la section Gérer les licences que vous avez accordées dans le Guide de l'utilisateur du License Manager.
-
Exécutez la commande suivante dans votre environnement.
# The following example uses a key fingerprint that should match the test license you created. # When checking out an actual AWS Marketplace created license, use the following fingerprint: # aws:294406891311:AWS/Marketplace:issuer-fingerprint aws license-manager checkout-license \ --product-sku <REPLACE-WITH-PRODUCT-ID> \ --checkout-type PROVISIONAL \ --key-fingerprint "aws:<ACCOUNT-ID-WHERE-YOU-CREATED-TEST-LICENSE>:Self:issuer-fingerprint" \ --entitlements "Name=ReadOnly,Value=1,Unit=Count" \ --client-token $(uuidgen)
La commande précédente utilise
PROVISIONAL
comme valeur duCheckoutType
paramètre. Si le droit utilise une licence de prélèvement, utilisez-laPERPETUAL
pour la valeur.
APIAppels du License Manager
Pour gérer les licences stockées dans le compte License Manager du client, votre logiciel peut utiliser les API appels suivants :
-
GetLicense
— Obtient le statut d'une licence achetée indiquant si la licence est expirée ou sur le point d'expirer pour envoyer une notification au client. -
CheckoutLicense
— Découvre les licences que l'utilisateur a achetées. Vous pouvez également l'utiliser pour mettre à jour la quantité de licences lorsque l'utilisateur en a consommé une certaine quantité. AvecCheckoutLicense
, vous pouvez continuer à vérifier les quantités de licences utilisées par le client. Lorsque le client a épuisé toutes les licences, cet appel renvoie un message d'erreur. Pour plus d'informations sur la cadence de course suggéréeCheckoutLicense
, consultezRenouvellements et mises à niveau des licences. -
ExtendLicenseConsumption
— En cas de dimensions flottantes, lorsque le logiciel extrait une licence, il la renvoie automatiquement au pool au bout de 60 minutes. Si vous souhaitez prolonger la durée d'extraction de la licence, votre logiciel peut vous appelerExtendLicenseConsumption
pour prolonger la licence de 60 minutes supplémentaires. -
CheckInLicense
— En cas de dimensions flottantes, lorsque vous souhaitez renvoyer la licence au pool de droits, utilisezCheckInLicense
. -
ListReceivedLicenses
— Répertorie les licences achetées par l'acheteur.
Renouvellements et mises à niveau des licences
Les clients peuvent renouveler ou mettre à niveau leurs licences sur le Portail de gestion AWS Marketplace. Une fois qu'ils ont effectué un achat supplémentaire, ils AWS Marketplace génèrent une nouvelle version de la licence qui reflète les nouveaux droits. Votre logiciel lit les nouveaux droits en utilisant les mêmes API appels. Vous n'avez rien à faire de différent en termes d'intégration du License Manager pour gérer les renouvellements et les mises à niveau.
En raison des renouvellements de licence, des mises à niveau, des annulations, etc., nous recommandons que votre produit effectue l'CheckoutLicense
APIappel à un rythme régulier pendant son utilisation. En utilisant l'CheckoutLicense
APIopération à un rythme régulier, le produit peut détecter les modifications des droits, telles que les mises à niveau et les expirations.
Nous vous recommandons d'effectuer l'CheckoutLicense
APIappel toutes les 15 minutes.