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á.
Cross-service prevenção adjunta confusa
O problema “confused deputy” é um problema 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 confuso problema do delegado. Cross-service a representação 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 isso, a AWS fornece ferramentas que ajudam você a proteger seus dados para todos os serviços com entidades principais de serviço que receberam acesso aos recursos em sua conta.
Para limitar as permissões que AWS IoT fornecem outro serviço ao recurso, recomendamos usar as chaves de contexto de condição aws:SourceArn e aws:SourceAccount global nas políticas de recursos. Se você utilizar ambas as chaves de contexto de condição global, o valor aws:SourceAccount e a conta aws:SourceArn no valor deverão utilizar o mesmo ID de conta quando utilizados na mesma instrução de política.
A maneira mais eficaz de se proteger contra o problema substituto confuso é usar a chave de contexto de condição global aws:SourceArn com o nome do recurso da Amazon (ARN) completo do recurso. Pois AWS IoT, você aws:SourceArn deve estar em conformidade com o formato: arn: para permissões específicas de recursos ouaws:iot:region:account-id:resource-type/resource-idarn:. O resource-id pode ser o nome ou ID do recurso permitido ou uma declaração curinga dos IDs de recursos permitidos. Certifique-se de que aws:iot:region:account-id:*region corresponda à sua AWS IoT região e ao account-id ID da sua conta de cliente.
O exemplo a seguir mostra como evitar o problema confuso do delegado usando aws:SourceArn as chaves de contexto da condição aws:SourceAccount global na política de confiança de AWS IoT funções. Para obter mais exemplos, consulte Exemplos detalhados de prevenção contra representante confuso.
-
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"iot.amazonaws.com" }, "Action":"sts:AssumeRole", "Condition":{ "StringEquals":{ "aws:SourceAccount":"123456789012" }, "ArnLike":{ "aws:SourceArn":"arn:aws:iot:us-east-1:123456789012:*" } } } ] }
nota
Se você receber erros de negação de acesso, talvez a integração do serviço com o AWS
Security Token Service (STS) não aceite as chaves de contexto aws:SourceArn e aws:SourceAccount.
Exemplos detalhados de prevenção contra representante confuso
Esta seção fornece exemplos detalhados de como evitar o confuso problema adjunto usando as chaves aws:SourceArn de contexto da condição aws:SourceAccount global na política de confiança de AWS IoT funções.
Provisionamento de frotas
Você pode configurar o provisionamento da frota usando um recurso de modelo de provisionamento. Quando um modelo de provisionamento faz referência a uma função de provisionamento, a política de confiança dessa função pode incluir as chaves de condição aws:SourceArn e aws:SourceAccount. Essas chaves limitam os recursos para os quais a configuração pode invocar a solicitação sts:AssumeRole.
A função com a política de confiança a seguir só pode ser assumida pela entidade principal de IoT (iot.amazonaws.com) para o modelo de provisionamento especificado no SourceArn.
-
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"iot.amazonaws.com" }, "Action":"sts:AssumeRole", "Condition":{ "StringEquals":{ "aws:SourceAccount":"123456789012" }, "ArnLike":{ "aws:SourceArn":"arn:aws:iot:us-east-1:123456789012:provisioningtemplate/example_template" } } } ] }
JITP
No provisionamento just-in-time (JITP), você pode usar o modelo de provisionamento como um recurso separado da CA ou definir o corpo do modelo e a função como parte da configuração do certificado da CA. O valor da política de confiança aws:SourceArn na AWS IoT função depende de como você define o modelo de provisionamento.
Se você definir seu modelo de provisionamento como um recurso separado, o valor de aws:SourceArn poderá ser "arn:aws:iot:. Você pode usar o mesmo exemplo de política em Provisionamento de frotas.region:account-id:provisioningtemplate/example_template"
Se você definir seu modelo de provisionamento em um recurso de certificado de CA, o valor de aws:SourceArn poderá ser "arn:aws:iot: ou region:account-id:cacert/cert_id""arn:aws:iot:. Você pode usar um caractere curinga quando o identificador do recurso, como a ID de um certificado de CA, é desconhecido no momento da criação.region:account-id:cacert/*"
A função com a política de confiança a seguir só pode ser assumida pela entidade principal de IoT (iot.amazonaws.com) para o certificado de CA especificado no SourceArn.
-
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"iot.amazonaws.com" }, "Action":"sts:AssumeRole", "Condition":{ "StringEquals":{ "aws:SourceAccount":"123456789012" }, "ArnLike":{ "aws:SourceArn":"arn:aws:iot:us-east-1:123456789012:cacert/8ecde6884f3d87b1125ba31ac3fcb13d7016de7f57cc904fe1cb97c6ae98196e" } } } ] }
Ao criar um certificado de CA, você pode referenciar uma função de provisionamento na configuração do registro. A política de confiança da função de provisionamento pode usar aws:SourceArn para restringir para quais recursos a função pode ser assumida. No entanto, durante a chamada inicial de RegisterCACertificate para registrar o certificado CA, você não teria o ARN do certificado CA para especificar na condição aws:SourceArn.
Para contornar isso, ou seja, para especificar a política de confiança da função de provisionamento para o certificado CA específico com o qual está registrado AWS IoT Core, você pode fazer o seguinte:
-
Primeiro, chame RegisterCACertificate sem fornecer o parâmetro
RegistrationConfig. -
Depois que o certificado CA for registrado AWS IoT Core, chame https://docs.aws.amazon.com/iot/latest/apireference/API_UpdateCACertificate.html UpdateCacertificate nele.
Na chamada UpdateCACertificate, forneça um
RegistrationConfiguma que inclua a política de confiança da função de provisionamento comaws:SourceArndefinido como o ARN do certificado CA recém-registrado.
Provedor de credencial
Para provedor de AWS IoT Core
credenciais, use o mesmo Conta da AWS que você usa para criar o alias de função em aws:SourceAccount e especifique uma declaração que corresponda ao ARN do recurso rolealias tipo in. aws:SourceArn Ao criar uma função do IAM para uso com o provedor de AWS IoT Core credenciais, você deve incluir na aws:SourceArn condição os ARNs de quaisquer aliases de função que possam precisar assumir a função, autorizando assim a solicitação entre serviços. sts:AssumeRole
A função com a seguinte política de confiança só pode ser assumida pela entidade principal do provedor de credenciais do AWS IoT Core (credentials.iot.amazonaws.com) para o roleAlias especificado no SourceArn. Se uma entidade principal tentar recuperar as credenciais de um alias de função diferente do especificado na condição aws:SourceArn, a solicitação será negada, mesmo que esse outro alias de função faça referência ao mesmo perfil do IAM.
-
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "credentials.iot.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnLike": { "aws:SourceArn": "arn:aws:iot:us-east-1:123456789012:rolealias/example_rolealias" } } } ] }