Como o AWS X-Ray funciona com o IAM - AWS X-Ray

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á.

Como o AWS X-Ray funciona com o IAM

Antes de usar o IAM para gerenciar o acesso ao X-Ray, você precisa saber quais recursos do IAM estão disponíveis para uso com o X-Ray. Para ter uma visão geral de como o X-Ray e outros Serviços da AWS funcionam com o IAM, consulte Serviços da AWS que funcionam com o IAM no Guia do usuário do IAM.

Você pode usar o AWS Identity and Access Management (IAM) para conceder permissões do X-Ray a usuários e computar recursos na conta. O IAM controla o acesso ao serviço do X-Ray no nível da API para impor permissões de maneira uniforme, independentemente de qual cliente (console, SDK da AWS, AWS CLI) os usuários utilizem.

Para usar o console do X-Ray a fim de visualizar os mapas de serviço e os segmentos, você só precisa de permissões de leitura. Para habilitar o acesso ao console, adicione a AWSXrayReadOnlyAccess política gerenciada ao usuário do IAM.

Para desenvolvimento e testes locais, crie um perfil do IAM com permissões de leitura e gravação. Assuma o perfil e armazene as credenciais temporárias do perfil. É possível usar essas credenciais com o daemon do X-Ray, a AWS CLI e o SDK da AWS. Para obter mais informações, consulte Uso de credenciais de segurança temporárias com a AWS CLI.

Para implantar s aplicação instrumentada na AWS, crie um perfil do IAM com permissões de gravação e a atribua aos recursos que estão executando a aplicação. O AWSXRayDaemonWriteAccess inclui a permissão para carregar rastreamentos, além de algumas permissões de leitura para permitir o uso de regras de amostragem.

As políticas de leitura e gravação não incluem a permissão para definir as configurações de chaves de criptografia e as regras de amostragem. Use a AWSXrayFullAccess para acessar essas configurações ou adicione as APIs de configuração a uma política personalizada. Para a criptografia e a descriptografia com uma chave gerenciada pelo cliente criada por você, também será preciso obter permissão para usar a chave.

Políticas baseadas em identidade do X-Ray

Com as políticas baseadas em identidade do IAM, é possível especificar ações e recursos permitidos ou negados, assim como as condições sob as quais as ações são permitidas ou negadas. O X-Ray oferece suporte a ações, recursos e chaves de condição específicos. Para conhecer todos os elementos usados em uma política JSON, consulte Referência de elementos de política JSON do IAM no Guia do usuário do IAM.

Ações

Os administradores podem usar as políticas JSON da AWS para especificar quem tem acesso a quê. Ou seja, qual entidade principal pode executar ações em quais recursos e em que condições.

O elemento Action de uma política JSON descreve as ações que podem ser usadas para permitir ou negar acesso em uma política. Incluem ações em uma política para conceder permissões para executar a operação associada.

As ações de políticas no X-Ray usam o seguinte prefixo antes da ação: xray:. Por exemplo, para conceder a alguém permissão para recuperar detalhes de recursos de grupo com a operação de API GetGroup do X-Ray, inclua a ação xray:GetGroup na política dessa pessoa. As instruções de política devem incluir um elemento Action ou NotAction. O X-Ray define um conjunto próprio de ações que descrevem as tarefas que você pode executar com esse serviço.

Para especificar várias ações em uma única instrução, separe-as com vírgulas, como segue:

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

Você também pode especificar várias ações usando caracteres curinga (*). Por exemplo, para especificar todas as ações que começam com a palavra Get, inclua a seguinte ação:

"Action": "xray:Get*"

Para ver uma lista de ações do X-Ray, consulte Actions Defined by AWS X-Ray no Guia do usuário do IAM.

Recursos

Os administradores podem usar as políticas JSON da AWS para especificar quem tem acesso a quê. Ou seja, qual entidade principal pode executar ações em quais recursos e em que condições.

O elemento de política JSON Resource especifica o objeto ou os objetos aos quais a ação se aplica. Como prática recomendada, especifique um recurso usando seu nome do recurso da Amazon (ARN). Para ações em que não é possível usar permissões em nível de recurso, use um curinga (*) para indicar que a instrução se aplica a todos os recursos.

"Resource": "*"

Você pode controlar o acesso a recursos usando uma política do IAM. Para ações que aceitam permissões em nível de recurso, você usa um nome do recurso da Amazon (ARN) para identificar o recurso ao qual a política se aplica.

Todas as ações do X-Ray podem ser usadas em uma política do IAM para conceder ou negar a usuários permissão para usar essa ação. Contudo, nem todas as ações do X-Ray aceitam permissões em nível de recurso, que possibilitam especificar os recursos nos quais uma ação pode ser realizada.

Para ações que não aceitam permissões em nível de recurso, você deve usar “*” como o recurso.

As seguintes ações do X-Ray não aceitam permissões em nível de recurso:

  • CreateGroup

  • GetGroup

  • UpdateGroup

  • DeleteGroup

  • CreateSamplingRule

  • UpdateSamplingRule

  • DeleteSamplingRule

A seguir, veja um exemplo de uma política de permissões baseada em identidade para uma ação do CreateGroup. O exemplo mostra o uso de um ARN relacionado ao nome do grupo local-users com o ID exclusivo como um caractere curinga. Como o ID exclusivo é gerado quando o grupo é criado, não é possível prevê-lo na política com antecedência. Ao usar GetGroup, UpdateGroup ou DeleteGroup, você pode defini-lo como um curinga ou o exato ARN, incluindo ID.

nota

O ARN de uma regra de amostragem é definido por seu nome. Ao contrário dos ARNs do grupo, as regras de amostragem não possuem ID gerado exclusivamente.

Para ver uma lista de tipos de recurso do X-Ray e os respectivos ARNs, consulte Resources Defined by AWS X-Ray do Guia do usuário do IAM. Para saber com quais ações é possível especificar o ARN de cada recurso, consulte Ações definidas pelo AWS X-Ray.

Chaves de condição

O X-Ray não fornece nenhuma chave de condição específica ao serviço, mas permite o uso de algumas chaves de condição globais. Para ver todas as chaves de condição globais da AWS, consulte Chaves de contexto de condição globais da AWS no Guia do usuário do IAM.

Exemplos

Para visualizar exemplos de políticas baseadas em identidade do X-Ray, consulte AWS X-Ray exemplos de políticas baseadas em identidade.

Políticas baseadas em recursos do X-Ray

O X-Ray permite políticas baseadas em recursos para integração atual e futura de AWS service (Serviço da AWS), como o rastreamento ativo do Amazon SNS. As políticas baseadas em recursos do X-Ray podem ser atualizadas por outros Console de gerenciamento da AWSs ou por meio do SDK da AWS ou da CLI. Por exemplo, o console do Amazon SNS tenta configurar automaticamente uma política baseada em recursos para enviar rastreamentos para o X-Ray. O documento de política a seguir fornece um exemplo de configuração manual da política baseada em recursos do X-Ray.

exemplo Exemplo de política baseada em recursos do X-Ray para rastreamento ativo do Amazon SNS

Este exemplo de documento de política especifica as permissões que o Amazon SNS precisa para enviar dados de rastreamento ao 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" } } } ] }

Use a CLI para criar uma política baseada em recursos que conceda permissões ao Amazon SNS para enviar dados de rastreamento ao 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 esses exemplos, substitua partition, region, account-id e topic-name pela sua partição, região, ID da conta e nome de tópico do Amazon SNS específicos da AWS. Para conceder permissão a todos os tópicos do Amazon SNS para enviar dados de rastreamento ao X-Ray, substitua o nome do tópico por *.

Autorização baseada em tags do X-Ray

Você pode anexar tags a grupos ou regras de amostragem do X-Ray ou passar tags em uma solicitação para o X-Ray. Para controlar o acesso baseado em tags, forneça informações sobre as tags no elemento de condição de uma política usando as chaves de condição xray:ResourceTag/key-name, aws:RequestTag/key-name ou aws:TagKeys. Para obter mais informações sobre recursos de marcação do X-Ray, consulte Marcar grupos e regras de amostragem do X-Ray.

Para visualizar um exemplo de política baseada em identidade para limitar o acesso a um recurso baseado em tags desse recurso, consulte Gerenciar o acesso a grupos e regras de amostragem do X-Ray com base em tags.

Executar o aplicativo localmente

A aplicação instrumentada envia dados de rastreamento para o daemon do X-Ray. O daemon armazena em buffer documentos segmentados e os carrega em lote no serviço do X-Ray. O daemon precisa de permissões de gravação para carregar os dados de rastreamento e telemetria no serviço do X-Ray.

Ao executar o daemon localmente, crie um perfil do IAM, assuma o perfil e armazene credenciais temporárias em variáveis de ambiente ou em um arquivo denominado credentials em uma pasta chamada .aws na sua pasta de usuário. Para obter mais informações, consulte Uso de credenciais de segurança temporárias com a AWS CLI.

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

Caso você já tenha configurado credenciais a serem usadas com o SDK da AWS ou a AWS CLI, o daemon pode usá-las. Caso haja vários perfis disponíveis, o daemon usa o perfil padrão.

Executar a aplicação na AWS

Ao executar a aplicação na AWS, use um perfil para conceder permissão à instância do Amazon EC2 ou à função do Lambda que executa o daemon.

  • Amazon Elastic Compute Cloud (Amazon EC2): crie um perfil do IAM e anexe-o à instância do EC2 como um perfil de instância.

  • Amazon Elastic Container Service (Amazon ECS): crie um perfil do IAM e anexe-a às instâncias de contêiner como um perfil do IAM da instância de contêiner.

  • AWS Elastic Beanstalk (Elastic Beanstalk): o Elastic Beanstalk inclui permissões do X-Ray em seu perfil de instância padrão. É possível usar o perfil da instância padrão ou adicionar permissões de gravação a um perfil da instância personalizado.

  • AWS Lambda (Lambda): adicione permissões de gravação ao perfil de execução de sua função.

Como criar uma função a ser usada com o X-Ray
  1. Abra o console do IAM.

  2. Escolha Perfis.

  3. Escolha Criar nova função.

  4. Em Nome da função, digite xray-application. Escolha Próxima etapa.

  5. Em Tipo de função, escolha Amazon EC2.

  6. Anexe a política gerenciada a seguir para oferecer ao aplicativo acesso aos Serviços da AWS.

    • AWSXRayDaemonWriteAccess: concede permissão ao daemon do X-Ray para carregar dados de rastreamento.

    Se seu aplicativo usa o SDK da AWS para acessar outros serviços, adicione políticas que concedam acesso a esses serviços.

  7. Escolha Próxima etapa.

  8. Selecione Criar função.

Permissões de usuário para criptografia

Por padrão, o X-Ray criptografa todos os dados de rastreamento, e é possível configurá-lo para usar uma chave gerenciada por você. Se você escolher uma chave gerenciada pelo cliente do AWS Key Management Service, precisará garantir que a política de acesso da chave possibilite a concessão de permissão ao X-Ray para usá-la na criptografia. Outros usuários em sua conta também precisam acessar a chave para visualizar dados de rastreamento criptografados no console do X-Ray.

Para obter uma chave gerenciada pelo cliente, configure sua chave com uma política de acesso que permita as ações a seguir.

  • O usuário que configura a chave no X-Ray deve ter permissão para chamar kms:CreateGrant e kms:DescribeKey.

  • Os usuários que podem acessar os dados de rastreamento criptografados têm permissão para chamar kms:Decrypt.

Quando você adiciona um usuário ao grupo Usuários de chaves na seção de configuração de chaves do console do IAM, ele tem permissão para executar ambas as operações. A permissão só precisa ser definida na política de chave e, portanto, você não precisa de nenhuma permissão do em seus usuários, grupos ou funções do AWS KMS. Para obter mais informações, consulte Usar políticas de chaves no Guia do desenvolvedor do AWS KMS.

Para a criptografia padrão, ou se você escolher a CMK da AWS (aws/xray), a permissão usará como base quem tem acesso às APIs do X-Ray. Quem tiver acesso a PutEncryptionConfig, incluindo em AWSXrayFullAccess, poderá alterar a configuração de criptografia. Para evitar que um usuário altere a chave de criptografia, não lhe dê permissão para usar a PutEncryptionConfig.