You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/design-doc-provider-identity-based-auth.md
+8-8Lines changed: 8 additions & 8 deletions
Original file line number
Diff line number
Diff line change
@@ -13,7 +13,7 @@ Crossplane provider supports a subset of the underlying Cloud provider's
13
13
authentication mechanisms and this subset is currently implemented in-tree,
14
14
i.e., in the Crossplane provider's repo, there exists a CRD that's
15
15
conventionally named as `ProviderConfig` and each managed resource of the
16
-
provider has a [v1.Reference][v1.reference] to a `ProviderConfig` CR. This
16
+
provider has a [v1.Reference](https://docs.crossplane.io/v1.12/concepts/managed-resources/#providerconfigref) to a `ProviderConfig` CR. This
17
17
`ProviderConfig` holds the authentication configuration (chosen authentication method,
18
18
any required credentials for that method, etc.) together with any other provider
19
19
specific configuration. Different authentication methods and/or different sets
@@ -22,7 +22,7 @@ CRs and by having different managed resources refer to these `ProviderConfig`
22
22
instances.
23
23
24
24
The Crossplane provider establishes an identity for the requests it will issue
25
-
to the Cloud provider in the [managed.ExternalConnecter][managed.ExternalConnecter]'s `Connect`
25
+
to the Cloud provider in the [managed.ExternalConnecter](https://pkg.go.dev/github.com/crossplane/[email protected]/pkg/reconciler/managed#ExternalConnecter)'s `Connect`
26
26
implementation. This involves calling the associated authentication functions from
27
27
the Cloud SDK libraries (such as the [AWS SDK for Go][aws-sdk] or the [Azure
28
28
SDK for Go][azure-sdk]) with the supplied configuration and credentials from the
@@ -59,7 +59,7 @@ provider credential set) in the cluster solely using RBAC. This is because:
59
59
tenants in the cluster via RBAC rules, it's not possible to prevent them from
60
60
_using_ those credentials solely with RBAC.
61
61
62
-
As discussed in detail in the [Crossplane Multi-tenancy Guide][xp-mt],
62
+
As discussed in detail in the [Crossplane Multi-tenancy Guide](https://docs.crossplane.io/knowledge-base/guides/multi-tenant/),
63
63
Crossplane is opinionated about the different personas in an organization adopting
64
64
Crossplane. We make a distinction between the _infrastructure operators_ (or
65
65
_platform builders_) who are expected to manage cluster-scoped resources (like
@@ -82,7 +82,7 @@ This distinction is currently possible with Crossplane because:
82
82
credentials in the cluster and if the exposed XR API allows a `Claim` to
83
83
reference cross-tenant `ProviderConfig`s, then a misbehaving tenant subject
84
84
can `create` a `Claim` which references some other tenant's credential set.
85
-
Thus in our multi-tenancy [guide][xp-mt], we propose a security scheme where:
85
+
Thus in our multi-tenancy [guide](https://docs.crossplane.io/knowledge-base/guides/multi-tenant/), we propose a security scheme where:
86
86
1. The infrastructure operator follows a specific naming convention for the
87
87
`ProviderConfig`s she provisions: The `ProviderConfig`s for different
88
88
tenants are named after those tenants' namespaces.
@@ -96,7 +96,7 @@ This distinction is currently possible with Crossplane because:
96
96
`ProviderConfig` with the same name as the tenant's namespace).
97
97
4. We also suggest that the naming conventions imposed by this scheme on
98
98
`ProviderConfig`s can be relaxed to some degree by using `Composition`'s
99
-
[patching capabilities][ref-compositions]. For instance, a string
99
+
[patching capabilities](https://docs.crossplane.io/v1.12/concepts/composition/#compositions). For instance, a string
100
100
[transform][patch-transform] of type `Format` can be used to combine the
101
101
`Claim`'s namespace with an XR field's value to allow multiple
102
102
`ProviderConfig`s per tenant and to allow selection of the
@@ -229,7 +229,7 @@ a single Kubernetes service account under which the provider runs.
229
229
Apart from a vulnerability perspective, there are also some other limitations to
230
230
this architecture, which are related to identity-based authentication.
231
231
232
-
**Note**: The [multi-tenancy guide][xp-mt] also mentions multi-cluster
232
+
**Note**: The [multi-tenancy guide](https://docs.crossplane.io/knowledge-base/guides/multi-tenant/) also mentions multi-cluster
233
233
multi-tenancy, where tenants are run on their respective Kubernetes clusters.
234
234
This form of multi-tenancy is out of scope in this document.
0 commit comments