13.4. CCS クラスターの Security Context Constraints の作成
デフォルトの Security Context Constraints (SCC) がアプリケーションのワークロード要件を満たさない場合は、OpenShift CLI (oc) を使用してカスタム SCC を作成できます。
独自の SCC の作成と変更は高度な操作であり、クラスターを不安定にする可能性があります。独自の SCC の使用について質問がある場合は、Red Hat サポートにお問い合わせください。Red Hat サポートへの連絡方法は、サポートを受ける方法 を参照してください。
OpenShift Dedicated デプロイメントでは、カスタマークラウドサブスクリプション (CCS) モデルを使用するクラスターに対してのみ、独自の SCC を作成できます。SCC リソースの作成には cluster-admin 権限が必要なため、Red Hat クラウドアカウントを使用する OpenShift Dedicated クラスターの SCC を作成することはできません。
前提条件
-
OpenShift CLI (
oc) がインストールされている。 -
cluster-adminロールを持つユーザーとしてクラスターにログインしている。
手順
scc-admin.yamlという名前の YAML ファイルで SCC を定義します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプションとして、
requiredDropCapabilitiesフィールドに必要な値を設定して、SCC の特定の機能を取り除くことができます。指定された機能はコンテナーからドロップされます。すべてのケイパビリティーを破棄するには、ALLを指定します。たとえば、KILL機能、MKNOD機能、およびSYS_CHROOT機能のない SCC を作成するには、以下を SCC オブジェクトに追加します。requiredDropCapabilities: - KILL - MKNOD - SYS_CHROOT
requiredDropCapabilities: - KILL - MKNOD - SYS_CHROOTCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記allowedCapabilitiesとrequiredDropCapabilitiesの両方に、機能を追加できません。CRI-O は、Docker ドキュメント に記載されている同じ一連の機能の値をサポートします。
ファイルを渡して SCC を作成します。
oc create -f scc-admin.yaml
$ oc create -f scc-admin.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
securitycontextconstraints "scc-admin" created
securitycontextconstraints "scc-admin" createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
SCC が作成されていることを確認します。
oc get scc scc-admin
$ oc get scc scc-adminCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
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]
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]Copy to Clipboard Copied! Toggle word wrap Toggle overflow