As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Associando licenças a produtos AMI baseados usando AWS License Manager
Para produtos baseados em Amazon Machine Image (AMI) com preços contratuais, você pode usar o AWS License Manager para associar licenças ao seu produto. AWS License Manager é uma ferramenta de gerenciamento de licenças que permite que seu aplicativo rastreie e atualize licenças (também conhecidas como direitos) que foram adquiridas por um cliente. Depois que a integração for concluída, você poderá publicar sua lista de produtos no AWS Marketplace. As seções a seguir fornecem mais informações sobre AWS License Manager como associar licenças ao seu produto AMI baseado.
Para obter mais informações sobre AWS License Manager, consulte o Guia AWS License Manager do Usuário e a AWS License Managerseção da Referência de AWS CLI Comandos.
nota
-
Os clientes não podem lançar novas instâncias AMI após o período de expiração do contrato. No entanto, durante a vigência do contrato, eles podem executar qualquer número de instâncias. Essas licenças não estão bloqueadas por nós nem estão vinculadas a instâncias específicas.
-
Criação de oferta privada: os vendedores podem gerar ofertas privadas para os produtos usando a ferramenta de criação de ofertas privadas no Portal de gerenciamento do AWS Marketplace.
-
Relatórios: você pode configurar feeds de dados configurando um bucket do Amazon S3 na seção Relatório no Portal de gerenciamento do AWS Marketplace. Para mais informações, consulte Relatórios de vendedores, feeds de dados e painéis em AWS Marketplace.
Tópicos
Modelos de licença
AWS Marketplace a integração com AWS License Manager suporta dois modelos de licença:
Modelo de licença configurável
O modelo de licença configurável (também conhecido como modelo de licença quantificável) autoriza o comprador a uma quantidade específica de recursos após a aquisição da licença.
Você define uma dimensão de preço e um preço unitário. Em seguida, o comprador pode escolher a quantidade de recursos que deseja comprar.
exemplo da dimensão de preços e do preço unitário
Você pode definir uma dimensão de preço (como backup de dados) e um preço unitário (como USD 30/unidade)
O comprador pode optar por comprar 5, 10 ou 20 unidades.
Seu produto rastreia e mede o uso para medir a quantidade de recursos consumidos.
Com o modelo de configuração, os direitos são contados de uma destas duas maneiras:
Licenças emitidas
A licença é extraída do conjunto de quantidades permitidas de licenças após o uso. Esse direito é verificado permanentemente e não pode ser devolvido ao pool de licenças.
exemplo de processar uma quantidade limitada de dados
Um usuário tem o direito de processar 500 GB de dados. À medida que continuam processando os dados, a quantidade é extraída do pool de 500 GB até que todas as licenças de 500 GB sejam consumidas.
Para licenças de retirada, você pode usar a CheckoutLicense
API operação para verificar as unidades de licença que são consumidas.
exemplo de backup no S3 para várias unidades/ano
Você tem um produto de armazenamento que permite fazer backup no Amazon Simple Storage Service (Amazon S3) de até 1024 unidades de dados por um ano. Seu aplicativo pode ser lançado usando várias EC2 instâncias da Amazon. Seu aplicativo tem um mecanismo para rastrear e agregar dados. Seu software chama a CheckoutLicense
API operação com a ID do produto em cada backup ou em intervalos fixos para atualizar as quantidades consumidas.
Neste exemplo, seu software chama CheckoutLicense
para verificar 10 unidades de dados. Quando a capacidade total atinge o limite de backup que o cliente comprou, a API chamada falha.
Solicitação
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"
Resposta
{ "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" }
Licenças flutuantes
A licença é devolvida ao conjunto da quantidade permitida de licenças após o uso.
exemplo do número de usuários a partir de um limite superior fixo
Um usuário tem direito a 500 usuários simultâneos no aplicativo. Conforme os usuários fazem login e se desconectam, eles são retirados e retornados ao conjunto de 500 usuários. No entanto, o aplicativo não pode retirar mais de 500 usuários do conjunto porque 500 usuários simultâneos é o limite máximo fixo.
Para licenças flutuantes, você pode usar a CheckInLicense
API operação para devolver as unidades de licença ao pool de direitos.
exemplo do número de usuários simultâneos por um ano
O preço do produto é baseado no número de usuários simultâneos. O cliente compra uma licença para 10 usuários por um ano. O cliente inicia o software fornecendo AWS Identity and Access Management (IAM) permissões. Quando um usuário faz login, seu aplicativo chama a CheckoutLicense
API operação para reduzir a quantidade em 1. Quando o usuário se desconecta, o aplicativo retorna essa licença para o pool chamando a CheckInLicense
API operação. Se você não chamar CheckInLicense
, o check-in da unidade de licença será feito automaticamente depois de 1 hora.
nota
Na solicitação a seguir, key-fingerprint
não é um valor reservado, mas o valor real da impressão digital com a qual todas as licenças serão publicadas.
Solicitação
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"
Resposta
{ "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" }
Modelo de licença em nível
O modelo de licença em nível dá ao comprador o direito a um nível específico de recursos do aplicativo após a aquisição da licença.
Você cria níveis para seu produto, como Básico, Intermediário e Premium. Em seguida, o comprador seleciona um dos níveis predefinidos.
O aplicativo não precisa rastrear ou medir o uso do aplicativo.
Com o modelo de licença em nível, os direitos não são contados, mas significam um nível de serviço que foi adquirido pelo cliente.
Se você quiser oferecer recursos agrupados, recomendamos usar o modelo de licença em nível.
exemplo dos níveis Básico, Intermediário e Premium
Um cliente pode assinar um contrato para um dos três níveis possíveis do software: Básico, Intermediário ou Premium. Cada um desses níveis tem seu próprio preço. Seu software pode identificar o nível no qual o cliente se inscreveu invocando a CheckoutLicense
API operação e especificando todos os níveis possíveis na solicitação.
A resposta da solicitação contém o direito correspondente ao nível que o cliente adquiriu. Com base nessas informações, o software pode fornecer a experiência adequada ao cliente.
Solicitação
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"
Resposta
{ "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" }
Fluxo de trabalho de integração
As etapas a seguir mostram o fluxo de trabalho para integrar seu AMI produto com AWS License Manager:
-
O vendedor cria um produto com AWS License Manager integração.
-
O vendedor lista o produto em AWS Marketplace.
-
O comprador encontra o produto AWS Marketplace e o compra.
-
Uma licença é enviada para a Conta da AWS do comprador.
-
O comprador usa o software lançando a instância Amazon Elastic Compute Cloud (AmazonEC2), a tarefa Amazon Elastic Container Service (AmazonECS) ou o software pod Amazon Elastic Kubernetes Service EKS (Amazon). O cliente implanta usando uma função. IAM
-
O software lê a licença na AWS License Manager conta do comprador, descobre os direitos adquiridos e provisiona os recursos adequadamente.
nota
O License Manager não faz nenhum rastreamento ou atualização; isso é feito pelo aplicativo do vendedor.
Pré-requisitos de integração do License Manager
Antes de publicar o produto, você deve fazer o seguinte:
-
Crie um novo AMI produto no Portal de gerenciamento do AWS Marketplace e anote o código do produto.
-
Preencha o Formulário de Carregamento do Produto (PLF) com as informações de preço necessárias e devolva-o para processamento.
-
Use uma IAM função para a tarefa ou o pod que executa seu aplicativo com IAM as permissões necessárias para chamar
CheckoutLicense
ExtendLicenseConsumption
,CheckInLicense
e.As IAM permissões necessárias estão detalhadas na IAM política a seguir.
{ "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":"*" } ] }
-
Faça uma chamada de teste para a
RegisterUsage
API operação com um registro de todas as dimensões de preço que você definir.
Integrando um produto AMI baseado com AWS License Manager
Você pode integrar seu produto AMI baseado ao License Manager usando AWS License ManagerAPIo. Inicie as EC2 instâncias da Amazon usando produtos AWS Marketplace AMI baseados.
nota
Verifique se você concluiu os Pré-requisitos de integração do License Manager antes de executar o procedimento a seguir.
Para integrar seu produto AMI baseado ao License Manager
-
Conclua o procedimento em Criação de uma licença de teste no License Manager. Você deve criar uma licença de teste no License Manager para testar a integração.
-
Execute a GetLicenseAPIoperação usando a licença Amazon Resource Name (ARN) que você obteve na etapa 1. Observe o valor do atributo
KeyFingerprint
da respostaGetLicense
para uso posterior. -
Baixe e inclua o público mais recente AWS SDK em seu aplicativo.
-
Para verificar se o comprador tem o direito de usar uma licença para seu aplicativo, execute a CheckoutLicenseAPIoperação. Use os detalhes dos direitos e a impressão digital da chave da licença de teste que você obteve na etapa 1.
Se não houver direitos encontrados para a licença ou se a contagem máxima de direitos for excedida, a operação será retornada.
CheckoutLicense
APINoEntitlementsAllowedException
Se os direitos forem válidos ou estiverem disponíveis para uso, a operaçãoCheckoutLicense
retornará uma resposta bem-sucedida com os direitos solicitados e os valores. -
(Obrigatório somente para direitos flutuantes) Execute a CheckinLicenseAPIoperação usando o
LicenseConsumptionToken
que foi recebido naCheckoutLicense
resposta. Essa ação libera direitos previamente retirados de volta ao conjunto de direitos disponíveis. -
Depois de verificar com êxito a integração do License Manager com a licença de teste que você criou na etapa 1, atualize a impressão digital da chave no código para
aws:294406891311:AWS/Marketplace:issuer-fingerprint
. Agora, você está pronto para trabalhar com licenças emitidas pelo AWS Marketplace.
Siga o processo de lançamento de criar o aplicativo para um AMI produto e, em seguida, envie o produto para AWS Marketplace seguir o processo de publicação do produto.
Criação de uma licença de teste no License Manager
Você usa a versão 2 do AWS Command Line Interface (AWS CLI) para criar uma licença de teste em AWS License Manager. Essa licença de teste é usada somente para verificar e testar a AWS License Manager integração. Depois que o teste for concluído, você poderá excluir a licença de teste. A licença real é gerada pelo AWS Marketplace com uma impressão digital de chave diferente.
AWS Marketplace suporta dois tipos de direitos em. AWS License Manager No entanto, somente um tipo pode ser habilitado para um produto. Ao criar uma licença, incluindo uma licença de teste, você deve especificar um dos seguintes tipos de direitos:
Direitos em nível: o modelo de licença em nível dá ao cliente o direito a determinados recursos do aplicativo. Os clientes não podem definir a quantidade de unidades que desejam comprar. No entanto, eles podem selecionar um único pacote ou nível predefinido. Os clientes podem modificar o contrato posteriormente para assinar outro nível.
Direitos configuráveis: o modelo de licença configurável concede direitos a uma determinada quantidade de recursos quando o cliente adquire uma licença. O cliente escolhe a quantidade de unidades que deseja comprar durante o processo de assinatura e será cobrado com base no preço unitário. Os clientes também podem assinar várias dimensões.
Os parâmetros necessários para uso na CheckoutLicense
API operação são os seguintes:
-
CheckoutType
: os valores válidos sãoPerpetual
ouProvisional
:-
Perpetual
: usado quando a quantidade de direitos retirados será esgotada do conjunto. Exemplo: o comprador tem o direito de processar 500 GB de dados. À medida que continua processando os dados, a quantidade é retirada e esgotada do conjunto de 500 GB. Obtém o status de uma licença comprada sobre se a licença está expirada ou prestes a expirar para enviar uma notificação ao cliente. -
Provisional
: usado para direitos de licença flutuante, em que os direitos são retirados do conjunto e devolvidos após o uso. Exemplo: o usuário tem direito a 500 usuários simultâneos no aplicativo. Conforme os usuários fazem login e se desconectam, eles são retirados e retornados ao conjunto de 500 usuários. Para obter mais informações sobre direitos de licença flutuante, consulte Licenças emitidas pelo vendedor no License Manager AWS.
-
-
ClientToken
: identificador exclusivo que diferencia maiúsculas de minúsculas para garantir que o resultado exato ocorra e seja o mesmo, não importa quantas vezes você tente. Recomendamos que você use um identificador aleatório universalmente exclusivo (UUID) para cada solicitação. -
Entitlements
: lista de direitos a serem verificados.-
Para direitos em nível, forneça as propriedades
Name
eUnit
assim:{
"Name": "<
Entitlement_Name
>","Unit": "
None
"}
-
Para direitos configuráveis, forneça as propriedades
Name
,Value
eUnit
assim:{
"Name": "<
Entitlement_Name
>","Unit": "<
Entitlement_Unit
>","Value": <
Desired_Count
>{}
-
-
KeyFingerprint
: use essa impressão digital da chave para verificar se a licença foi emitida pelo AWS Marketplace. A impressão digital chave para licenças emitidas pela AWS Marketplace é a seguinte:aws:294406891311:AWS/Marketplace:issuer-fingerprint
-
Product SKU
— ID do produto com um formato de identificador global exclusivo (GUID) associado a um AWS Marketplace produto.
exemplo de um direito configurável
Veja a seguir um exemplo de uma solicitação que usa a CheckoutLicense
API operação para verificar um direito configurável chamado. 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"
exemplo de um direito em nível
Veja a seguir um exemplo de uma solicitação que usa a CheckoutLicense
API operação para verificar um direito de recurso chamado. 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"
Para criar uma licença de teste para seu produto AMI baseado
-
Em seu ambiente local com a AWS CLI v2 instalada, execute o script a seguir. O script cria a licença de teste e configura os detalhes apropriados do produto.
nota
Use um teste Conta da AWS diferente daquele Conta da AWS em que você está implantando e testando seu software. As licenças não podem ser criadas, concedidas e verificadas na mesma Conta da 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)
-
Conceda a licença usando o AWS License Manager console. Para obter mais informações, consulte distribuir um direito no Guia do usuário do License Manager.
-
Faça login na Conta da AWS que funciona como uma conta de comprador na qual você implantará e testará seu software. Isso deve ser diferente Conta da AWS do Conta da AWS que criou e concedeu a licença.
-
Acesse o AWS License Manager console para aceitar e ativar as licenças concedidas. Para obter mais informações, consulte gerenciar as licenças concedidas no Guia do usuário do License Manager.
-
Execute o seguinte comando no ambiente.
# 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)
O comando anterior usa
PROVISIONAL
como valor para o parâmetroCheckoutType
. Se o direito usar uma licença extraída, usePERPETUAL
para obter o valor.
APIChamadas do License Manager
Para gerenciar as licenças armazenadas na conta do License Manager do cliente, seu software pode usar as seguintes API chamadas:
-
GetLicense
: obtém o status de uma licença comprada sobre se a licença está expirada ou prestes a expirar para enviar uma notificação ao cliente. -
CheckoutLicense
: descobre as licenças que o usuário comprou. Você também pode usá-la para atualizar a quantidade de licenças quando o usuário tiver consumido alguma quantidade de licenças. ComCheckoutLicense
, você pode continuar verificando as quantidades de licenças usadas pelo cliente. Quando o cliente esgota todas as licenças, essa chamada retorna um erro. Para obter informações sobre a cadência sugerida para execução deCheckoutLicense
, consulte Renovações e upgrades de licenças. -
ExtendLicenseConsumption
: no caso de dimensões flutuantes, quando o software comprar uma licença, ele retornará a licença ao conjunto automaticamente após 60 minutos. Se você quiser estender o tempo em que a licença permanece verificada, o software pode chamarExtendLicenseConsumption
para estender a licença por mais 60 minutos. -
CheckInLicense
: no caso de dimensões flutuantes, quando quiser devolver a licença ao conjunto de direitos, useCheckInLicense
. -
ListReceivedLicenses
: lista as licenças compradas pelo comprador.
Renovações e upgrades de licenças
Os clientes podem renovar ou atualizar as licenças no Portal de gerenciamento do AWS Marketplace. Depois de fazer uma compra adicional, AWS Marketplace gera uma nova versão da licença que reflete os novos direitos. Seu software lê os novos direitos usando as mesmas API chamadas. Você não precisa fazer nada diferente em termos de integração do License Manager para lidar com renovações e atualizações.
Devido a renovações de licenças, upgrades, cancelamentos e assim por diante, recomendamos que seu produto realize a CheckoutLicense
API chamada regularmente enquanto o produto estiver em uso. Ao usar a CheckoutLicense
API operação em um ritmo regular, o produto pode detectar alterações nos direitos, como atualizações e expiração.
Recomendamos que você realize a CheckoutLicense
API chamada a cada 15 minutos.