Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> otherwise you have the DNS option which means giving the server access to modify the DNS records which is also unsafe should the box get compromised

This is true, but the machine doing DNS modifications doesn't need to be accessible to any outside initiated connections at all. So if someone has the capacity to compromise such a computer, what would stop them from compromising your desktop computer or your laptop instead?

But either way it would indeed be nice to have further limits on what the box could do. But I think LetsEncrypt does not need to change anything to make this possible.

https://letsencrypt.org/docs/challenge-types/

The DNS verification works by creating a DNS TXT record named "_acme-challenge" with a TXT value on the domain you are verifying.

So really what you want is for your DNS provider to implement into their API access keys that can be restricted so that the absolutely only thing the key is allowed to do is to create, change and delete the DNS TXT record named "_acme-challenge". Perhaps some DNS providers already make this possible? But the one I am using is only able to limit it to a ZONE, but not to a specific record type and not to a specific label.

In fact I wish CloudFlare would allow such specific fine-grained permissions. But even if they did they'd probably make it part of the Enterprise plan and I am still not an Enterprise customer so.

Edit: Meanwhile that I was writing this someone else posted a sibling comment about ACME DNS alias mode, which I had not heard of. https://github.com/acmesh-official/acme.sh/wiki/DNS-alias-mo... That's very close to good enough. Though it would still be nice if DNS providers made it possible to issue API access tokens that are limited to specific record type and specific label.



I do the challenge verification using DNS and Route 53, and the process has permission to update the challenge record and nothing else. So what you are describing is definitely possible.


I looked into this previously and was unhappy to learn that Route53 doesn’t allow permissions based on specific records. The most granular permissions were for a full zone at the time.


> Though it would still be nice if DNS providers made it possible to issue API access tokens that are limited to specific record type and specific label.

A handy CLI utility that can be used in hook scripts that can update dozens of APIs at different DNS providers:

* https://github.com/AnalogJ/lexicon


Yes, but what I am saying is that it’d be nice for the API access tokens issued by the DNS providers to be limited to specific record type and specific label.

For example, the access tokens that you generate for giving tools like that one access to act on your behalf, when using CloudFlare as your DNS provider.

CloudFlare at the moment does not to my knowledge offer such fine grained controls as what I am talking about, on the API access tokens.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: