Você não pode fazer isso com o CloudFront.
tl; dr: seu curinga não corresponde a nomes de host nos quais um nome de host específico e conflitante está configurado em outra distribuição.
Você criou o nome alternativo do caractere curinga na distribuição B como uma tentativa de contornar essa restrição:
You cannot add an alternate domain name to a CloudFront distribution if the alternate domain name already exists in another CloudFront distribution, even if your AWS account owns the other distribution.
Existe, é claro, uma razão para essa restrição, e também explica por que a distribuição B nunca veria suas solicitações, mesmo que sua configuração de DNS esteja funcionando como esperado.
A exceção à regra ...
However, you can add a wildcard alternate domain name, such as *.example.com, that includes (that overlaps with) a non-wildcard alternate domain name, such as www.example.com. Overlapping domain names can be in the same distribution or in separate distributions as long as both distributions were created by using the same AWS account.
... não fornece a exceção que você previu.
Quando um navegador da Web se conecta a um endpoint, como o navegador chegou lá não é preservado - era um registro A estático, um Alias, um CNAME, uma cascata inteira de CNAMEs ou um entrada no seu arquivo hosts? O servidor não sabe, porque essa informação não é preservada ... Ela sabe o endereço IP que você chegou, mas isso é de um pool compartilhado por muitas distribuições, então como sua solicitação chegou a uma determinada borda do CloudFront (que define de registros DNS foi seguido, seu "A" ou "B" - eles podem até mesmo não ser endereços IP diferentes no final do CloudFront) não é algo que pode ser usado para determinar qual distribuição deve atender sua solicitação.
O único mecanismo que o CloudFront tem para determinar qual distribuição deve atender a uma solicitação específica é o cabeçalho HTTP Host:
na solicitação HTTP de entrada (potencialmente, negociação SNI também, mas isso não muda nada, independentemente de CloudFront usa isso).
O tratamento de uma solicitação como pertencente a uma distribuição específica é decidido com base em mais nada - não pode ser, já que não há mais nada disponível para se basear nela.
Por extensão lógica, somente uma distribuição pode ser associada a qualquer solicitação recebida Host:
header, como www.example.com
(sua distribuição "A".)
A outra distribuição ("B"), *.example.com
é, na verdade, apenas capaz de atender a solicitações de tudo, exceto www.example.com
(ou de outros nomes de domínio alternativos mais específicos que você associado a distribuições que, de outra forma, corresponderiam a esse caractere curinga) porque outra distribuição na mesma conta com um nome de host mais específico associado ("A") reivindica o nome de host específico www.example.com
como uma exceção ao caractere curinga *
.
Essencialmente, as solicitações são verificadas para uma distribuição com uma correspondência exata do nome do host, primeiro, e somente quando não houver correspondência, a distribuição com o caractere curinga será usada para a solicitação.