Depois de alguns dias perguntando, testando e tentando, me deparei com uma solução de um cara legal no Reddit. a solução completa para o meu problema é a seguinte:
"myInternalIPHostRecord": {
"Type": "AWS::Route53::RecordSet",
"Properties": {
"HostedZoneId": {
"Ref" : "HostedZoneId"
},
"Comment": "Internal DNS name for my instance.",
"Name": {
"Fn::Join": [
"",
[
"internal",
".",
{
"Ref": "DNSEnvironment"
},
".",
{
"Ref": "HostedZoneName"
},
"."
]
]
},
"Type": "A",
"TTL": "120",
"ResourceRecords": [
{
"Fn::GetAtt" : [ "MyInstance", "PrivateIp" ]
}
]
}
}
a nova parte para mim foi o Fn::GetAtt
para recuperar o "PrivateIP"
da minha instância, eu não encontrei uma maneira de fazer isso antes de obter ajuda. caso contrário, isso era exatamente como o registro IP público foi criado (e que é bem documentado antes, por exemplo, aqui : (e vejo agora que ele usa o Fn :: getAtt, não tenho certeza porque eu mesmo não obtive isso).