Monitorización de implementaciones con AWS CloudTrail - AWS CodeDeploy

Monitorización de implementaciones con AWS CloudTrail

CodeDeploy está integrado con CloudTrail, un servicio que captura las llamadas a la API realizadas por o en nombre de CodeDeploy en una cuenta de AWS y envía los archivos de registro al bucket de Amazon S3 que se especifique. CloudTrail captura las llamadas a la API de la consola de CodeDeploy, de los comandos de CodeDeploy a través de la AWS CLI o directamente desde las API de CodeDeploy. Con la información recopilada por CloudTrail, puede identificar la solicitud que se realizó a CodeDeploy, la dirección IP de origen desde la que se realizó la solicitud, quién realizó la solicitud, cuándo se realizó, etcétera. Para obtener más información acerca de CloudTrail, incluso cómo configurarlo y habilitarlo, consulte la Guía del usuario de AWS CloudTrail.

Información de CodeDeploy en CloudTrail

Cuando el registro de CloudTrail está habilitado en su cuenta de AWS, las llamadas a la API realizadas a acciones de CodeDeploy se registran en archivos de registro. Los registros de CodeDeploy se crean junto con los registros de otros servicios de AWS en un archivo de registro. CloudTrail determina cuándo debe crearse un nuevo archivo y escribir en él en función del periodo de tiempo y del tamaño del archivo.

Todas las acciones de CodeDeploy están registradas y documentadas en la Referencia de la línea de comandos de AWS CodeDeploy y en la Referencia de la API de AWS CodeDeploy. Todas las llamadas realizadas para crear implementaciones, eliminar aplicaciones y registrar la revisiones de aplicación, por ejemplo, generan entradas en los archivos de registro de CloudTrail.

Cada entrada de registro contiene información sobre quién generó la solicitud. La información de identidad del usuario que figura en el registro le ayudará a determinar si la solicitud se hizo con credenciales de usuario raíz o de , con credenciales de seguridad temporales para una función o un usuario federado, o mediante otro servicio de AWS. Para obtener más información, consulte el campo userIdentity en la Referencia de eventos de CloudTrail.

Puede almacenar los archivos de registro en su bucket durante todo el tiempo que desee, pero también puede definir reglas de ciclo de vida de Amazon S3 para archivar o eliminar archivos de registro automáticamente. De forma predeterminada, se usa el cifrado del servidor (SSE) de Amazon S3 para cifrar los archivos de registro.

Puede hacer que CloudTrail publique notificaciones de Amazon SNS cuando se entreguen archivos de registro nuevos. Para obtener más información, consulte Configuración de notificaciones de Amazon SNS para CloudTrail.

También puede agregar archivos de registro de CodeDeploy desde varias regiones de AWS y varias cuentas de AWS en un solo bucket de Amazon S3. Para obtener más información, consulte Recibir archivos de registro de CloudTrail de varias regiones.

Conocimiento de las entradas del archivo de registro de CodeDeploy

Los archivos de registro de CloudTrail pueden contener una o varias entradas de registro, cada una de las cuales se compone de varios eventos en formato JSON. Una entrada de registro representa una única solicitud de cualquier origen e incluye información sobre la acción solicitada, los parámetros, la fecha y la hora de la acción, etcétera. Las entradas de registro no se muestran en ningún orden concreto. Es decir, no representan un rastro de la pila ordenada de las llamadas a API públicas.

En el siguiente ejemplo, se muestra una entrada de registro de CloudTrail que ilustra la acción de CodeDeploy de creación de un grupo de implementación:

{ "Records": [{ "eventVersion": "1.02", "userIdentity": { "type": "AssumedRole", "principalId": "AKIAI44QH8DHBEXAMPLE:203.0.113.11", "arn": "arn:aws:sts::123456789012:assumed-role/example-role/203.0.113.11", "accountId": "123456789012", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2014-11-27T03:57:36Z" }, "sessionIssuer": { "type": "Role", "principalId": "AKIAI44QH8DHBEXAMPLE", "arn": "arn:aws:iam::123456789012:role/example-role", "accountId": "123456789012", "userName": "example-role" } } }, "eventTime": "2014-11-27T03:57:36Z", "eventSource": "codedeploy.amazonaws.com", "eventName": "CreateDeploymentGroup", "awsRegion": "us-west-2", "sourceIPAddress": "203.0.113.11", "userAgent": "example-user-agent-string", "requestParameters": { "applicationName": "ExampleApplication", "serviceRoleArn": "arn:aws:iam::123456789012:role/example-instance-group-role", "deploymentGroupName": "ExampleDeploymentGroup", "ec2TagFilters": [{ "value": "CodeDeployDemo", "type": "KEY_AND_VALUE", "key": "Name" }], "deploymentConfigName": "CodeDeployDefault.HalfAtATime" }, "responseElements": { "deploymentGroupId": "7d64e680-e6f4-4c07-b10a-9e117EXAMPLE" }, "requestID": "86168559-75e9-11e4-8cf8-75d18EXAMPLE", "eventID": "832b82d5-d474-44e8-a51d-093ccEXAMPLE", "eventType": "AwsApiCall", "recipientAccountId": "123456789012" }, ... additional entries ... ] }