This content has been machine translated dynamically.
Dieser Inhalt ist eine maschinelle Übersetzung, die dynamisch erstellt wurde. (Haftungsausschluss)
Cet article a été traduit automatiquement de manière dynamique. (Clause de non responsabilité)
Este artículo lo ha traducido una máquina de forma dinámica. (Aviso legal)
此内容已经过机器动态翻译。 放弃
このコンテンツは動的に機械翻訳されています。免責事項
이 콘텐츠는 동적으로 기계 번역되었습니다. 책임 부인
Este texto foi traduzido automaticamente. (Aviso legal)
Questo contenuto è stato tradotto dinamicamente con traduzione automatica.(Esclusione di responsabilità))
This article has been machine translated.
Dieser Artikel wurde maschinell übersetzt. (Haftungsausschluss)
Ce article a été traduit automatiquement. (Clause de non responsabilité)
Este artículo ha sido traducido automáticamente. (Aviso legal)
この記事は機械翻訳されています.免責事項
이 기사는 기계 번역되었습니다.책임 부인
Este artigo foi traduzido automaticamente.(Aviso legal)
这篇文章已经过机器翻译.放弃
Questo articolo è stato tradotto automaticamente.(Esclusione di responsabilità))
Translation failed!
Configure SecurSpaces for AWS Mount Points
Complete the AWS preparation first. The steps here depend on a file system, its mount targets, and the IAM roles already existing.
Create the StorageClass
You author the StorageClass by hand, one per backing file system. SecurSpaces ships none and creates none. A missing StorageClass is the most common cause of an empty create dialog.
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: sn-efs-mountpoint
provisioner: efs.csi.aws.com
mountOptions:
- tls
parameters:
provisioningMode: efs-ap
fileSystemId: fs-0abc123
basePath: "/dyn"
directoryPerms: "700"
gidRangeStart: "50000"
gidRangeEnd: "51000"
reclaimPolicy: Delete
volumeBindingMode: Immediate
<!--NeedCopy-->
Required values:
-
provisioner: efs.csi.aws.comfor both backends. -
parameters.provisioningMode—efs-apfor Amazon EFS,s3files-apfor Amazon S3 Files. This parameter, not any option in the interface, selects the backend. Users choose the backend by choosing the StorageClass, so give each class a clear name. -
parameters.fileSystemId— the id of the file system you created. -
mountOptions: [tls]— a top-level list, a sibling ofparameters, not a key inside it. -
volumeBindingMode: Immediate— EFS and S3 Files are zoneless. A class set toWaitForFirstConsumercan never bind and the create is rejected.
Optional values include basePath, subPathPattern, directoryPerms, and the pair gidRangeStart and
gidRangeEnd, which bound the POSIX group id the access point enforces. Set both or neither. Keep a custom range
wide enough for every Mount Point planned on that file system, because each access point consumes one group id.
One file system and one StorageClass serve many Mount Points. Add more only when you exceed the access point ceiling, need throughput isolation, or need hard tenant isolation.
Encryption in transit
EFS and S3 Files are mounted over NFS on port 2049, and the CSI driver only encrypts that traffic when the mount
carries the tls option. Set it on the StorageClass and on every PersistentVolume you author. Without it, every
byte read or written travels unencrypted.
SecurSpaces keys strictly on the literal tls mount option. It does not accept parameters.encryptInTransit, a
TLS-enabled access point, or an EFS file system policy that enforces SecureTransport as substitutes.
How strictly this is enforced differs by mode:
-
Attach Existing fails closed. At bind time SecurSpaces reads the volume you named and refuses the attach unless it
is an
efs.csi.aws.comvolume whose mount options containtls. -
Create New is best-effort. A StorageClass without
tlsis normally hidden from the Create New list, and naming it anyway is rejected. All of these checks depend on reading the StorageClass from the Kubernetes API.
Warning
The StorageClass read is made by the workspace service. If it cannot read StorageClasses, every Create New encryption check is skipped, a StorageClass without
tlsbecomes usable, and the mount runs unencrypted with no error. This is the one failure in this article that fails in the permissive direction.
The grant is a ClusterRole, because StorageClasses are cluster-scoped. Two Helm settings remove it:
platform.serviceKubernetesConfig.rbac.createWorkspaceClusterRoles: false prevents the ClusterRole from being
created, and setting platform.serviceKubernetesConfig.serviceAccounts.wsAPIServiceAccount to your own service
account means the chart installs none of the workspace service RBAC objects. In that case you must create the
equivalent permissions yourself.
Verify both verbs. Kubernetes list does not imply get:
kubectl auth can-i get storageclasses --as=system:serviceaccount:<namespace>:<release>-workspace-api
kubectl auth can-i list storageclasses --as=system:serviceaccount:<namespace>:<release>-workspace-api
<!--NeedCopy-->
Missing get skips the encryption checks and allows an unencrypted mount. Missing list breaks discovery
entirely: the create list is empty and the feature disappears.
Enable the feature
Mount Point Storage is enabled at System Configuration > Integrations > Mount Point Storage. System Configuration is an administrator-only area. A security officer who is not also an administrator cannot enable it.
- The cloud provider is detected, not chosen. SecurSpaces derives whether Mount Points are backed by AWS or Azure from the CSI provisioners of the StorageClasses on the cluster. To expose the AWS options, create AWS Mount Point StorageClasses first.
- Turn on the file storage switch. While it is off, the create flow is hidden from users.
- Use one cloud per cluster. If both an AWS and an Azure Mount Point StorageClass are present, the provider cannot be resolved, the switches are forced off, and the feature is withdrawn. The page explains this and lists the providers it detected. Remove one cloud’s classes and revisit the page. No restart is needed, but allow about 30 seconds for the configuration cache.
-
allowPersistentVolumeAccessgoverns one attach mode. The mode in which a user types raw coordinates and SecurSpaces builds the volume requiresplatform.serviceKubernetesConfig.rbac.allowPersistentVolumeAccess, which defaults tofalse. While it is off, that mode is hidden, but attaching a volume you authored and creating new Mount Points both still work. The change takes effect whenhelm upgradecompletes, with no pod restart.
Note
Only this page explains why Mount Points are unavailable. In the project and workspace views the option is simply hidden. Triage any report of missing Mount Points by opening this page first.
Next
- Author a PersistentVolume, if you publish your own volumes
- Troubleshooting
Related information
Share
Share
This Preview product documentation is Citrix Confidential.
You agree to hold this documentation confidential pursuant to the terms of your Citrix Beta/Tech Preview Agreement.
The development, release and timing of any features or functionality described in the Preview documentation remains at our sole discretion and are subject to change without notice or consultation.
The documentation is for informational purposes only and is not a commitment, promise or legal obligation to deliver any material, code or functionality and should not be relied upon in making Citrix product purchase decisions.
If you do not agree, select I DO NOT AGREE to exit.