The Centos8 AMI published by Amazon is not actually free. However, the image that it is based on from the Centos team is.

Have a look at https://wiki.centos.org/Cloud/AWS

To get the free one published by the Centos team, you can use:

aws --region eu-west-1 ec2 describe-images --owners 125523088429 \
    --filters Name=architecture,Values='arm64' Name=name,Values='CentOS 8.*'

(Note this is getting the arm64 one, not the x86_64 image)

If you want something a bit sexier - in this case processed with JQ so that I can use it with packer, this might help:

aws ec2 describe-images \
    --owners 125523088429 \
    --filters Name=architecture,Values='arm64' Name=name,Values='CentOS 8.*' \
    | jq '.Images | sort_by(.CreationDate) | last(.[]) | {"aws_centos_latest": .ImageId}'