Registro de medición de llamadas a la API de AWS Marketplace con AWS CloudTrail
AWS Marketplace se integra con AWS CloudTrail, un servicio que proporciona un registro de las acciones realizadas por un usuario, un rol o un Servicio de AWS en AWS Marketplace. CloudTrail captura las llamadas a la API de AWS Marketplace como eventos. Las llamadas capturadas incluyen las llamadas desde la consola de AWS Marketplace y las llamadas desde el código a las operaciones de la API de AWS Marketplace.
CloudTrail se habilita en su Cuenta de AWS cuando se crea la cuenta. Cuando se produce una actividad de eventos compatible en AWS Marketplace, la actividad se registra en un evento de CloudTrail junto con otros eventos de Servicio de AWS en Historial de eventos. Puede ver, buscar y descargar los últimos eventos de su cuenta.
Cada entrada de registro o evento contiene información sobre quién generó la solicitud. La información de identidad del usuario lo ayuda a determinar lo siguiente:
-
Si la solicitud se realizó con las credenciales raíz o del usuario de AWS Identity and Access Management.
-
Si la solicitud se realizó con credenciales de seguridad temporales de un rol o un usuario federado.
-
Si la solicitud la realizó otro Servicio de AWS.
AWS Marketplace admite el registro de la operación de BatchMeterUsage
como eventos en los archivos de registro de CloudTrail.
Ejemplos de entradas en el archivo de registro de la API de medición de AWS Marketplace
Ejemplo: BatchMeterUsage
En el siguiente ejemplo, se muestra una entrada de registro de CloudTrail que ilustra la acción BatchMeterUsage
del AWS Marketplace Metering Service. Cuando el vendedor envía registros de medición para informar sobre el uso por parte de sus clientes de un producto de software como servicio (SaaS) enumerado en AWS Marketplace, esta entrada de registro de CloudTrail se registra en el Cuenta de AWS del vendedor.
{ "eventVersion": "1.05", "userIdentity": { "type": "IAMUser", "principalId": "EX_PRINCIPAL_ID", "arn": "arn:aws:iam::
123456789012
:user/Alice
", "accountId": "123456789012
", "accessKeyId": "EXAMPLE_KEY_ID", "userName": "Alice" }, "eventTime": "2018-04-19T16:32:51Z", "eventSource": "metering-marketplace.amazonaws.com", "eventName": "BatchMeterUsage", "awsRegion": "us-east-1", "sourceIPAddress": "192.0.0.2/24", "userAgent": "Coral/Netty14", "requestParameters": { "usageRecords": [ { "dimension": "Dimension1
", "timestamp": "Apr 19, 2018 4:32:50 PM", "customerIdentifier": "customer1
", "quantity": 1 } ], "productCode": "EXAMPLE_proCode" }, "responseElements": { "results": [ { "usageRecord": { "dimension": "Dimension1
", "timestamp": "Apr 19, 2018 4:32:50 PM", "customerIdentifier": "customer1
", "quantity": 1 }, "meteringRecordId": "bEXAMPLE-98f0-4e90-8bd2-bf0EXAMPLE1e
", "status": "Success" } ], "unprocessedRecords": [ ] }, "requestID": "dEXAMPLE-251d-11e7-8d11-1f3EXAMPLE8b
", "eventID": "cEXAMPLE-e6c2-465d-b47f-150EXAMPLE97
", "readOnly": false, "eventType": "AwsApiCall", "recipientAccountId": "123456789012
" } ] }
Ejemplo: RegisterUsage
para contenedores
En el siguiente ejemplo, se muestra una entrada de registro de CloudTrail que ilustra la acción RegisterUsage
del AWS Marketplace Metering Service. Cuando se implementa un producto de contenedor de AWS Marketplace con precio por hora en el Cuenta de AWS del comprador, el software del contenedor llama RegisterUsage
en el Cuenta de AWS del comprador para iniciar la medición por hora para esa tarea de Amazon Elastic Container Service (Amazon ECS) o pod de Amazon Elastic Kubernetes Service (Amazon EKS). Esta entrada de registro de CloudTrail se registra en el Cuenta de AWS del comprador.
{ "eventVersion": "1.05", "userIdentity": { "type": "AssumedRole", "principalId": "EX_PRINCIPAL_ID:botocore-session-1111111111", "arn": "arn:aws:sts::123456789012:assumed-role/Alice/botocore-session-1111111111", "accountId": "123456789012", "accessKeyId": "EXAMPLE_KEY_ID", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "EX_PRINCIPAL_ID", "arn": "arn:aws:iam::123456789012:role/Alice", "accountId": "123456789012", "userName": "Alice" }, "webIdFederationData": { "federatedProvider": "arn:aws:iam::123456789012:oidc-provider/oidc.eks.us-east-1.amazonaws.com/id/EXAMPLEFA1C58F08CDB049167EXAMPLE", "attributes": {} }, "attributes": { "mfaAuthenticated": "false", "creationDate": "2020-07-23T02:19:34Z" } } }, "eventTime": "2020-07-23T02:19:46Z", "eventSource": "metering-marketplace.amazonaws.com", "eventName": "RegisterUsage", "awsRegion": "us-east-1", "sourceIPAddress": "1.2.3.4", "userAgent": "aws-cli/1.18.103 Python/3.8.2 Linux/4.14.181-142.260.amzn2.x86_64 botocore/1.17.26", "requestParameters": { "productCode": "EXAMPLE_proCode", "publicKeyVersion": 1 }, "responseElements": { "signature": "eyJhbGciOiJQUzI1Ni..." }, "requestID": "dEXAMPLE-251d-11e7-8d11-1f3EXAMPLE8b", "eventID": "cEXAMPLE-e6c2-465d-b47f-150EXAMPLE97", "eventType": "AwsApiCall", "recipientAccountId": "123456789012" }
Ejemplo: MeterUsage
para contenedores de Amazon EKS
En el siguiente ejemplo, se muestra una entrada de registro de CloudTrail que ilustra la acción MeterUsage
del AWS Marketplace Metering Service para contenedores en Amazon EKS. Cuando se instala un producto en contenedor con una forma de medición personalizada de AWS Marketplace en el Cuenta de AWS del comprador, el software del contenedor llama a MeterUsage
en el Cuenta de AWS del comprador para informar cada hora. Esta entrada de registro de CloudTrail se registra en el Cuenta de AWS del comprador.
{ "eventVersion": "1.05", "userIdentity": { "type": "AssumedRole", "principalId": "EX_PRINCIPAL_ID:botocore-session-1111111111", "arn": "arn:aws:sts::123456789012:assumed-role/Alice/botocore-session-1111111111", "accountId": "123456789012", "accessKeyId": "EXAMPLE_KEY_ID", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "EX_PRINCIPAL_ID", "arn": "arn:aws:iam::123456789012:role/Alice", "accountId": "123456789012", "userName": "Alice" }, "webIdFederationData": { "federatedProvider": "arn:aws:iam::123456789012:oidc-provider/oidc.eks.us-east-1.amazonaws.com/id/EXAMPLEFA1C58F08CDB049167EXAMPLE", "attributes": {} }, "attributes": { "mfaAuthenticated": "false", "creationDate": "2020-07-23T01:03:26Z" } } }, "eventTime": "2020-07-23T01:38:13Z", "eventSource": "metering-marketplace.amazonaws.com", "eventName": "MeterUsage", "awsRegion": "us-east-1", "sourceIPAddress": "1.2.3.4", "userAgent": "aws-cli/1.18.103 Python/3.8.2 Linux/4.14.181-142.260.amzn2.x86_64 botocore/1.17.26", "requestParameters": { "timestamp": "Jul 23, 2020 1:35:44 AM", "usageQuantity": 1, "usageDimension": "Dimension1", "productCode": "EXAMPLE_proCode" }, "responseElements": { "meteringRecordId": "bEXAMPLE-98f0-4e90-8bd2-bf0EXAMPLE1e" }, "requestID": "dEXAMPLE-251d-11e7-8d11-1f3EXAMPLE8b", "eventID": "cEXAMPLE-e6c2-465d-b47f-150EXAMPLE97", "eventType": "AwsApiCall", "recipientAccountId": "123456789012" }
Ejemplo: MeterUsage
en las AMI
En el siguiente ejemplo, se muestra una entrada de registro de CloudTrail que ilustra la acción MeterUsage
del AWS Marketplace Metering Service para Imagen de máquina de Amazon (AMI). Cuando se instala un producto de AMI con una forma de medición personalizada de AWS Marketplace en el Cuenta de AWS del comprador, el software del AMI llama a MeterUsage
en el Cuenta de AWS del comprador para informar cada hora. Esta entrada de registro de CloudTrail se registra en el Cuenta de AWS del comprador.
{ "eventVersion": "1.05", "userIdentity": { "type": "AssumedRole", "principalId": "EX_PRINCIPAL_ID:i-exampled859aa775c", "arn": "arn:aws:sts::123456789012:assumed-role/Alice/i-exampled859aa775c", "accountId": "123456789012", "accessKeyId": "EXAMPLE_KEY_ID", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "EX_PRINCIPAL_ID", "arn": "arn:aws:iam::123456789012:role/Alice", "accountId": "123456789012", "userName": "Alice" }, "webIdFederationData": {}, "attributes": { "mfaAuthenticated": "false", "creationDate": "2020-07-10T23:05:20Z" }, "ec2RoleDelivery": "1.0" } }, "eventTime": "2020-07-10T23:06:42Z", "eventSource": "metering-marketplace.amazonaws.com", "eventName": "MeterUsage", "awsRegion": "us-east-1", "sourceIPAddress": "1.2.3.4", "userAgent": "aws-cli/1.16.102 Python/2.7.16 Linux/4.14.133-113.112.amzn2.x86_64 botocore/1.12.92", "requestParameters": { "productCode": "EXAMPLE_proCode", "timestamp": "Jul 10, 2020 11:06:41 PM", "usageDimension": "Dimension1", "usageQuantity": 1, "dryRun": false }, "responseElements": { "meteringRecordId": "bEXAMPLE-98f0-4e90-8bd2-bf0EXAMPLE1e" }, "requestID": "dEXAMPLE-251d-11e7-8d11-1f3EXAMPLE8b", "eventID": "cEXAMPLE-e6c2-465d-b47f-150EXAMPLE97", "eventType": "AwsApiCall", "recipientAccountId": "123456789012" }