-
Notifications
You must be signed in to change notification settings - Fork 74
[Feature] Actor Identity #124
Copy link
Copy link
Open
Labels
area/identityarea/nodearea/securitySecurity related issue/prSecurity related issue/prkind/featureAn enhancement / feature request or implementationAn enhancement / feature request or implementationprio/P0Highest priority / required for next milestoneHighest priority / required for next milestone
Milestone
Metadata
Metadata
Assignees
Labels
area/identityarea/nodearea/securitySecurity related issue/prSecurity related issue/prkind/featureAn enhancement / feature request or implementationAn enhancement / feature request or implementationprio/P0Highest priority / required for next milestoneHighest priority / required for next milestone
Type
Fields
Give feedbackNo fields configured for issues without a type.
For Alpha, we need to give Actors access to OIDC JWTs and SPIFFE certificates issued by substrate. We already have the broker RPCs implemented, but we have the following open items:
Basic design
The substrate control plane includes a broker API, where a caller can exchange a K8s-layer credential (service account JWT or service account certificate) for a substrate JWT / certificate.
The substrate credential will carry at least the following claims:
These credentials will be federatable, and so should be able to be used against GCS, S3, and other cloud provider services. They could also be used for actor-to-actor authentication, and general actor-to-service authentication.
(GCP-specific) Federation
Both OIDC JWTs and SPIFFE certificates can be federated into GCP IAM using Workload Identity Federation.
While it will not be scalable to create and delete per-actor IAM policies for each actor, it should be possible to use IAM conditions to write a single policy that authorizes every actor to access their own data. For example, "all callers from substrate issuer X have storage/object.admin on GCS bucket Y, as long as the object path starts with
actors/${ate.dev/actor-id}".