Cómo AWS X-Ray funciona con IAM - AWS X-Ray

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Cómo AWS X-Ray funciona con IAM

Antes de utilizar IAM para administrar el acceso a X-Ray, debe comprender qué características de IAM están disponibles para su uso con X-Ray. Para obtener una visión general de cómo X-Ray y otros Servicios de AWS funcionan con IAM, consulte Servicios de AWS That Work with IAM en la Guía del usuario de IAM.

Puedes usar AWS Identity and Access Management (IAM) para conceder permisos de X-Ray a los usuarios y los recursos informáticos de tu cuenta. IAM controla el acceso al servicio X-Ray a nivel de la API para aplicar los permisos de manera uniforme, independientemente del cliente (consola, AWS SDK AWS CLI) que empleen sus usuarios.

Para usar la consola X-Ray para ver mapas y segmentos de rastreo, solo necesita permisos de lectura. Para habilitar el acceso a la consola, añada la AWSXrayReadOnlyAccess política administrada al usuario de IAM.

Para desarrollo local y pruebas, cree un rol de IAM con permisos de lectura y escritura. Asuma el rol y almacene las credenciales temporales para el rol. Puede usar estas credenciales con el daemon X-Ray AWS CLI, el y el AWS SDK. Para obtener más información, consulte Uso de credenciales de seguridad temporales con AWS CLI.

Para implementar su aplicación instrumentada AWS, cree una función de IAM con permisos de escritura y asígnela a los recursos que ejecutan la aplicación. AWSXRayDaemonWriteAccessincluye permisos para cargar trazas y algunos permisos de lectura para permitir el uso de reglas de muestreo. Para obtener más información, consulte Configure las reglas de muestreo.

Las políticas de lectura y escritura no incluyen permiso para configurar la configuración de clave de cifrado y reglas de muestreo. Utilice AWSXrayFullAccess para obtener acceso a estas configuraciones o añadir API de configuración en una política personalizada. Para el cifrado y el descifrado con una clave administrada por el cliente que cree, también necesita permiso para utilizar la clave.

Políticas de X-Ray basadas en identidades

Con las políticas basadas en identidades de IAM, puede especificar las acciones y los recursos permitidos o denegados, así como las condiciones en las que se permiten o deniegan las acciones. X-Ray admite acciones, claves de condición y recursos específicos. Para obtener información sobre todos los elementos que utiliza en una política JSON, consulte Referencia de los elementos de las políticas JSON de IAM en la Guía del usuario de IAM.

Acciones

Los administradores pueden usar las políticas de AWS JSON para especificar quién tiene acceso a qué. Es decir, qué entidad principal puede realizar acciones en qué recursos y en qué condiciones.

El elemento Action de una política JSON describe las acciones que puede utilizar para conceder o denegar el acceso en una política. Las acciones políticas suelen tener el mismo nombre que la operación de AWS API asociada. Hay algunas excepciones, como acciones de solo permiso que no tienen una operación de API coincidente. También hay algunas operaciones que requieren varias acciones en una política. Estas acciones adicionales se denominan acciones dependientes.

Incluya acciones en una política para conceder permisos y así llevar a cabo la operación asociada.

Las acciones de políticas de X-Ray utilizan el siguiente prefijo antes de la acción: xray:. Por ejemplo, para conceder a alguien permiso para recuperar detalles de los recursos de grupo con la operación de la API GetGroup de X-Ray, incluya la acción xray:GetGroup en su política. Las instrucciones de la política deben incluir un elemento Action o un elemento NotAction. X-Ray define su propio conjunto de acciones que describen las tareas que se pueden realizar con este servicio.

Para especificar varias acciones en una única instrucción, sepárelas con comas del siguiente modo:

"Action": [ "xray:action1", "xray:action2"

Puede utilizar caracteres comodín para especificar varias acciones (*). Por ejemplo, para especificar todas las acciones que comiencen con la palabra Get, incluya la siguiente acción:

"Action": "xray:Get*"

Para ver una lista de las acciones de X-Ray, consulte Acciones definidas por AWS X-Ray en la Guía del usuario de IAM.

Recursos

Los administradores pueden usar las políticas de AWS JSON para especificar quién tiene acceso a qué. Es decir, qué entidad principal puede realizar acciones en qué recursos y en qué condiciones.

El elemento Resource de la política JSON especifica el objeto u objetos a los que se aplica la acción. Las instrucciones deben contener un elemento Resource o NotResource. Como práctica recomendada, especifique un recurso utilizando el Nombre de recurso de Amazon (ARN). Puede hacerlo para acciones que admitan un tipo de recurso específico, conocido como permisos de nivel de recurso.

Para las acciones que no admiten permisos de nivel de recurso, como las operaciones de descripción, utilice un carácter comodín (*) para indicar que la instrucción se aplica a todos los recursos.

"Resource": "*"

Puede controlar el acceso a los recursos a través de una política de IAM. Para las acciones que admiten permisos de nivel de recursos, se usa un nombre de recurso de Amazon (ARN) para identificar el recurso al que se aplica la política.

Es posible utilizar todas las acciones de X-Ray en una política de IAM para conceder o denegar permiso a los usuarios para utilizar esa acción. Sin embargo, no todas las acciones de X-Ray admiten permisos de nivel de recursos, que le permiten especificar los recursos en los que se puede realizar una acción.

Para las acciones que no admiten permisos de nivel de recursos, debe utilizar "*" como recurso.

Las siguientes acciones de X-Ray admiten permisos de nivel de recursos:

  • CreateGroup

  • GetGroup

  • UpdateGroup

  • DeleteGroup

  • CreateSamplingRule

  • UpdateSamplingRule

  • DeleteSamplingRule

A continuación, se muestra un ejemplo de una política de permisos basada en identidad para una acción CreateGroup: El ejemplo muestra el uso de un ARN relacionado con el nombre de grupo local-users con el ID único como elemento comodín. El ID único se genera cuando se crea el grupo y, por lo tanto, no puede predecirse en la política con antelación. Cuando se utiliza GetGroup, UpdateGroup o DeleteGroup, puede definir esto como un elemento comodín o el ARN exacto, incluido el ID.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "xray:CreateGroup" ], "Resource": [ "arn:aws:xray:eu-west-1:123456789012:group/local-users/*" ] } ] }

A continuación, se muestra un ejemplo de una política de permisos basada en identidad para una acción CreateSamplingRule:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "xray:CreateSamplingRule" ], "Resource": [ "arn:aws:xray:eu-west-1:123456789012:sampling-rule/base-scorekeep" ] } ] }
nota

El ARN de una regla de muestreo se define por su nombre. A diferencia de los ARN de grupo, las reglas de muestreo no tienen un ID generado de manera inequívoca.

Para ver una lista de tipos de recursos de X-Ray y sus ARN, consulte Recursos definidos por AWS X-Ray en la Guía del usuario de IAM. Para obtener información sobre las acciones con las que puede especificar el ARN de cada recurso, consulte Acciones definidas por AWS X-Ray.

Claves de condición

X-Ray no proporciona ninguna clave de condición específica del servicio, pero sí admite el uso de algunas claves de condición globales. Para ver todas las claves de condición AWS globales, consulte las claves de contexto de condición AWS globales en la Guía del usuario de IAM.

Ejemplos

Para ver ejemplos de políticas basadas en identidad de X-Ray, consulte AWS X-Ray ejemplos de políticas basadas en la identidad.

Políticas de X-Ray basadas en recursos

X-Ray admite políticas basadas en recursos para la integración actual y futura de Servicio de AWS , como el rastreo activo de Amazon SNS. Las políticas basadas en recursos de X-Ray se pueden actualizar por otros AWS Management Console, o mediante el AWS SDK o la CLI. Por ejemplo, la consola de Amazon SNS intenta configurar automáticamente una política basada en recursos para enviar rastros a X-Ray. En el siguiente documento de política se proporciona un ejemplo de configuración manual de una política basada en recursos de X-Ray.

ejemplo Ejemplo de política basada en recursos de X-Ray para el rastreo activo de Amazon SNS

En este ejemplo de documento de política se especifican los permisos que Amazon SNS necesita para enviar datos de rastro a X-Ray:

{ Version: "2012-10-17", Statement: [ { Sid: "SNSAccess", Effect: Allow, Principal: { Service: "sns.amazonaws.com", }, Action: [ "xray:PutTraceSegments", "xray:GetSamplingRules", "xray:GetSamplingTargets" ], Resource: "*", Condition: { StringEquals: { "aws:SourceAccount": "account-id" }, StringLike: { "aws:SourceArn": "arn:partition:sns:region:account-id:topic-name" } } } ] }

Utilice la CLI para crear una política basada en recursos que dé a Amazon SNS permisos para enviar datos de rastro a X-Ray:

aws xray put-resource-policy --policy-name MyResourcePolicy --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Sid": "SNSAccess", "Effect": "Allow", "Principal": { "Service": "sns.amazonaws.com" }, "Action": [ "xray:PutTraceSegments", "xray:GetSamplingRules", "xray:GetSamplingTargets" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "account-id" }, "StringLike": { "aws:SourceArn": "arn:partition:sns:region:account-id:topic-name" } } } ] }'

Para usar estos ejemplos, sustituya partition, regionaccount-id, y topic-namepor su AWS partición, región, ID de cuenta y nombre de tema de Amazon SNS específicos. Para dar permiso a todos los temas de Amazon SNS para que envíen datos de rastro a X-Ray, sustituya el nombre del tema por *.

Autorización basada en etiquetas de X-Ray

Puede adjuntar etiquetas a los grupos o las reglas de muestreo de X-Ray, o pasar las etiquetas en una solicitud a X-Ray. Para controlar el acceso en función de etiquetas, debe proporcionar información de las etiquetas en el elemento de condición de una política utilizando las claves de condición xray:ResourceTag/key-name, aws:RequestTag/key-name o aws:TagKeys. Para obtener más información acerca del etiquetado de recursos de X-Ray, consulte Etiquetado de reglas de muestreo y grupos de X-Ray.

Para consultar un ejemplo de política basada en la identidad para limitar el acceso a un recurso en función de las etiquetas de ese recurso, consulte Gestión del acceso a los grupos de rayos X y a las reglas de muestreo en función de las etiquetas.

Ejecutar la aplicación de forma local

Su aplicación instrumentada envía datos de rastro al daemon de X-Ray. El daemon almacena en búfer documentos de segmento y los carga en lotes en el servicio X-Ray. El daemon necesita permisos de escritura para cargar los datos de rastro y telemetría en el servicio X-Ray.

Al ejecutar el daemon de forma local, se crea un rol de IAM, se asume el rol y se almacenan las credenciales temporales en variables de entorno o en un archivo denominado credentials dentro de una carpeta denominada .aws en la carpeta de usuario. Para obtener más información, consulte Uso de credenciales de seguridad temporales con AWS CLI.

ejemplo ~/.aws/credentials
[default] aws_access_key_id={access key ID} aws_secret_access_key={access key} aws_session_token={AWS session token}

Si ya configuró las credenciales para usarlas con el AWS SDK o AWS CLI, el daemon puede usarlas. En caso de que haya varios perfiles disponibles, el daemon utilizará el perfil predeterminado.

Ejecutar la aplicación en AWS

Cuando ejecute la aplicación AWS, utilice un rol para conceder permiso a la instancia de Amazon EC2 o a la función Lambda que ejecuta el daemon.

Para crear un rol y usarlo con X-Ray
  1. Abra la consola de IAM.

  2. Elija Roles.

  3. Elija Crear nuevo rol.

  4. En Role Name (Nombre del rol), escriba xray-application. Elija Paso siguiente.

  5. En Role Type (Tipo de rol), elija Amazon EC2.

  6. Adjunte la siguiente política administrada para que la aplicación tenga acceso a los Servicios de AWS:

    • AWSXRayDaemonWriteAccess— Da permiso al daemon de X-Ray para cargar datos de rastreo.

    Si su aplicación usa el AWS SDK para acceder a otros servicios, añada políticas que permitan el acceso a esos servicios.

  7. Elija Paso siguiente.

  8. Seleccione Crear rol.

Permisos de usuario para cifrado

X-Ray cifra todos los datos de rastro y de forma predeterminada y puede configurarlo para que use una clave que usted administre. Si elige una clave administrada por el AWS Key Management Service cliente, debe asegurarse de que la política de acceso de la clave le permita conceder permiso a X-Ray para usarla para cifrar. Otros usuarios de su cuenta también tienen que obtener acceso a la clave para ver los datos de rastro cifrados en la consola de X-Ray.

Para una clave administrada por el cliente, configure su clave con una política de acceso que permita las siguientes acciones:

  • El usuario que configura la clave en X-Ray tiene permisos para llamar a kms:CreateGrant y kms:DescribeKey.

  • Los usuarios que pueden tener acceso a los datos de rastreo cifrados tienen permiso para llamar a kms:Decrypt.

Cuando se añade un usuario al grupo Usuarios clave en la sección de configuración de clave de la consola de , tienen permisos para ambas operaciones. Los permisos solo deben estar establecidos en la política de claves, por lo que no necesitas ningún AWS KMS permiso para tus usuarios, grupos o funciones. Para obtener más información, consulte Uso de políticas clave en la Guía para AWS KMS desarrolladores.

Para el cifrado predeterminado, o si elige la CMK (aws/xray) AWS administrada, el permiso depende de quién tenga acceso a las API de X-Ray. Cualquier persona con acceso a PutEncryptionConfig, incluido en AWSXrayFullAccess, puede cambiar la configuración de cifrado. Para evitar que un usuario cambie la clave de cifrado, no le conceda permiso para utilizar PutEncryptionConfig.