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
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 em um problema confuso de delegado.
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 esse problema confuso, AWS fornece ferramentas que ajudam você a proteger seus dados em todos os serviços com diretores de serviços que receberam acesso aos recursos em sua conta.
Recomendamos usar as chaves de contexto de condição aws:SourceAccount
global aws:SourceArn
e as chaves de contexto 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 StreamsJournalToKinesis
QLDBAPIdas operações ExportJournalToS3
e. 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 especificada por você.
APIoperação | Serviço chamado | leis: SourceArn |
---|---|---|
ExportJournalToS3 |
AWS STS (AssumeRole ) |
Permite QLDB assumir a função de qualquer QLDB recurso na conta:
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:
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:
Permite QLDB assumir a função de qualquer QLDB fluxo na conta:
Permite QLDB assumir a função de qualquer QLDB recurso na conta:
|
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
" } } } }