For cloud managed environments there must be a configuration management or configuration deployment mechanism already in place for distributing secrets
or one would hope and that should be the tool to deploy keys. Tracking both private and public keys to me would suggest they belong in a secret management tool ideally backed by an HSM somewhere. Each public and private key should be mapped to an identity
both are equally important since anyone can shove their public key into the authorized_keys file or directory. My preference is to save all of those under /etc/ssh/keys/ and preserve ownership to the owner or service owner and ensure that if someone manually adds a public key into /etc/ssh/keys/username that it triggers a security alert and clobbers it with what is supposed to be there per some git configuration. This will require re-training or unlearning bad habits on the part of the team members and this should be reviewed, approved and communicated by the CSO so that people know what is expected for service and human trust relationships in the cloud in my opinion.
sshd_config would need to be updated with:
AuthorizedKeysFile /etc/ssh/keys/%u
so that keys under home directories are ignored. Each username or service account name in /etc/ssh/keys can have multiple public keys but each of those keys
must be mapped in a security management repo or security management tool. If anything is manually added the secrets management tool should get a diff then restore only the public keys that are in the secrets management tool.