16.4. Security Context Constraints の作成
デフォルトの Security Context Constraints (SCC) がアプリケーションのワークロード要件を満たさない場合は、OpenShift CLI (oc) を使用してカスタム SCC を作成できます。
独自の SCC の作成と変更は高度な操作であり、クラスターを不安定にする可能性があります。独自の SCC の使用に関してご質問がある場合は、Red Hat サポートにお問い合わせください。Red Hat サポートへの連絡方法については、サポートを受けるを 参照してください。
デフォルトの OpenShift Container Platform SCC に対して 0 より大きい SCC 優先度を設定すると、クラスターの重大な不安定性を引き起こす可能性があります。
前提条件
-
OpenShift CLI (
oc) がインストールされている。 -
cluster-adminロールを持つユーザーとしてクラスターにログインしている。
手順
scc-admin.yamlという名前の YAML ファイルで SCC を定義します。kind: SecurityContextConstraints apiVersion: security.openshift.io/v1 metadata: name: scc-admin allowPrivilegedContainer: true runAsUser: type: RunAsAny seLinuxContext: type: RunAsAny fsGroup: type: RunAsAny supplementalGroups: type: RunAsAny users: - my-admin-user groups: - my-admin-groupオプションとして、
requiredDropCapabilitiesフィールドに必要な値を設定して、SCC の特定の機能を取り除くことができます。指定された機能はコンテナーからドロップされます。すべてのケイパビリティーを破棄するには、ALLを指定します。たとえば、KILL機能、MKNOD機能、およびSYS_CHROOT機能のない SCC を作成するには、以下を SCC オブジェクトに追加します。requiredDropCapabilities: - KILL - MKNOD - SYS_CHROOT注記allowedCapabilitiesとrequiredDropCapabilitiesの両方に、機能を追加できません。CRI-O は、Docker ドキュメント に記載されている同じ一連の機能の値をサポートします。
ファイルを渡して SCC を作成します。
$ oc create -f scc-admin.yaml出力例
securitycontextconstraints "scc-admin" created
検証
SCC が作成されていることを確認します。
$ oc get scc scc-admin出力例
NAME PRIV CAPS SELINUX RUNASUSER FSGROUP SUPGROUP PRIORITY READONLYROOTFS VOLUMES scc-admin true [] RunAsAny RunAsAny RunAsAny RunAsAny <none> false [awsElasticBlockStore azureDisk azureFile cephFS cinder configMap downwardAPI emptyDir fc flexVolume flocker gcePersistentDisk gitRepo glusterfs iscsi nfs persistentVolumeClaim photonPersistentDisk quobyte rbd secret vsphere]