2 ms·
If you're in AWS, you get credentials from the metadata service. If you're outside AWS, workloads assume roles using OIDC. If you still have access keys, genera
by vel0city 2y ago
If you're in AWS, you get credentials from the metadata service.
If you're outside AWS, workloads assume roles using OIDC. If you still have access keys, generally speaking, you're doing it wrong.
https://aws.amazon.com/blogs/security/access-aws-using-a-google-cloud-platform-native-workload-identity/ https://aws.amazon.com/blogs/security/access-aws-using-a-goo...
- jen20 2y agoBoth the metadata service and assuming a role with a “web identity” still give you an access key along with a session token.
- oblio 2y agoTechnically true, but in practice the role means you don't have to care about them. They're an implementation detail that's managed by AWS. Could be flying mice for all the app dev cares.
- vel0city 2y agoSure, under the hood it is still access keys. Very temporarily defined access keys that going the normal happy path means you're not directly handling. What I'm really meaning by my above comment is you're not configuring your workload with ACCESS_KEY=abc123 SECRET_ACCESS_KEY=xyz789.
- jen20 2y agoThey aren't configured, but they're not as temporary as one might hope (i.e. they don't rotate on every read, for example), and it's pretty trivial set of exploits to leak them, especially in Kubernetes clusters with incorrectly configured worker nodes. A much better solution would be for AWS to offer a domain socket or device inside VMs that will sign requests, such that the private material isn't even available to leak.
- kriops 2y agoOIDC uses a client secret, for one.