Prevenção do problema do substituto confuso entre serviços - Banco de dados Amazon Quantum Ledger (AmazonQLDB)

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

Prevenção do problema do substituto confuso entre serviços

Importante

Aviso de fim do suporte: os clientes existentes poderão usar a Amazon QLDB até o final do suporte em 31/07/2025. Para obter mais detalhes, consulte Migrar um Amazon QLDB Ledger para o Amazon Aurora Postgre. SQL

O problema de "confused deputy" é uma questão de segurança em que uma entidade que não tem permissão para executar uma ação pode coagir uma entidade mais privilegiada a executá-la. Em AWS, a falsificação de identidade entre serviços pode resultar no problema confuso do deputado.

A personificação entre serviços pode ocorrer quando um serviço (o serviço de chamada) chama outro serviço (o serviço chamado). O serviço de chamada pode ser manipulado de modo a usar suas permissões para atuar nos recursos de outro cliente de uma forma na qual ele não deveria ter permissão para acessar. Para evitar o confuso problema do deputado, AWS fornece ferramentas que ajudam você a proteger seus dados para todos os serviços com diretores de serviços que receberam acesso aos recursos em sua conta.

Recomendamos usar as chaves aws:SourceArnde contexto de condição aws:SourceAccountglobal nas políticas de recursos para limitar as permissões que a Amazon QLDB concede a outro serviço ao recurso. Se você utilizar ambas as chaves de contexto de condição global, o valor aws:SourceAccount e a conta no valor aws:SourceArn deverão utilizar o mesmo ID de conta quando utilizados na mesma instrução de política.

A tabela a seguir lista os valores possíveis StreamsJournalToKinesisQLDBAPIdas operações ExportJournalToS3e. aws:SourceArn Essas operações estão no escopo desse problema de segurança porque elas chamam AWS Security Token Service (AWS STS) para assumir uma IAM função que você especificar.

APIoperação Serviço chamado leis: SourceArn
ExportJournalToS3 AWS STS (AssumeRole)

Permite QLDB assumir a função de qualquer QLDB recurso na conta:

arn:aws:qldb:us-east-1:123456789012:*

Atualmente, QLDB só suporta esse caractere curinga ARN para exportações de periódicos.

StreamsJournalToKinesis AWS STS (AssumeRole)

Permite QLDB assumir a função de um QLDB fluxo específico:

arn:aws:qldb:us-east-1:123456789012:stream/myExampleLedger/IiPT4brpZCqCq3f4MTHbYy

Observação: você só pode especificar um ID de stream ARN após a criação do recurso de stream. Usando issoARN, você pode permitir que a função seja usada somente para um único QLDB stream.

Permite assumir QLDB a função de qualquer QLDB fluxo de um livro contábil:

arn:aws:qldb:us-east-1:123456789012:stream/myExampleLedger/*

Permite QLDB assumir a função de qualquer QLDB fluxo na conta:

arn:aws:qldb:us-east-1:123456789012:stream/*

Permite QLDB assumir a função de qualquer QLDB recurso na conta:

arn:aws:qldb:us-east-1:123456789012:*

A maneira mais eficaz de se proteger contra o confuso problema do deputado é usar a chave de contexto ARN de condição aws:SourceArn global com todo o recurso. Se você não souber a totalidade ARN do recurso ou se estiver especificando vários recursos, use a chave de condição de contexto aws:SourceArn global com caracteres curinga (*) para as partes desconhecidas do ARN —por exemplo,. arn:aws:qldb:us-east-1:123456789012:*

O exemplo de política de confiança a seguir para uma IAM função mostra como você pode usar as chaves de contexto de condição aws:SourceAccount global aws:SourceArn e as chaves de contexto para evitar o confuso problema adjunto. Com essa política de confiança, QLDB pode assumir a função de qualquer QLDB fluxo na conta myExampleLedger somente 123456789012 para o livro contábil.

Para usar essa política, substitua us-east-1, 123456789012 e myExampleLedger no exemplo com suas próprias informações.

{ "Version": "2012-10-17", "Statement": { "Sid": "ConfusedDeputyPreventionExamplePolicy", "Effect": "Allow", "Principal": { "Service": "qldb.amazonaws.com" }, "Action": [ "sts:AssumeRole" ], "Condition": { "ArnEquals": { "aws:SourceArn": "arn:aws:qldb:us-east-1:123456789012:stream/myExampleLedger/*" }, "StringEquals": { "aws:SourceAccount": "123456789012" } } } }