I am architecting on a project where we will have hundreds of deployed devices that each require access to Pub/Sub continuously. I was going to build this on top of IOT Core but this has now been put into deprecation mode. I am now trying to figure out the right architecture so that I can manage GCP access from the nodes. For purposes of this question, assume secret management is not part of the problem (I can store whatever credentials I need to locally securely).
I believe my options are:
- have a separate service account for each device
- pros: 1:1 correlation between device and account makes server-side access-control actions trivial
- cons: I think there are relatively low limits to the number of service accounts a project can have
- have one service account but separate credentials
.jsonfile on each device- pros: single point of maintenance for all access control
- cons: I think this is capped at 10 key files per service account; can remove access for a single device but much more difficult to reinstate
- custom build ... what exactly?
I guess the overall question is "how does one organize IAM for a project with a very large number of clients using the Google SDKs?"