27.2.4.2. ユーザー ID
ユーザー ID は、コンテナーイメージまたは Pod 定義で定義できます。ユーザー ID に基づいてストレージアクセスを制御する方法については、ボリュームのセキュリティー のトピックで説明されています。 NFS 永続ストレージをセットアップする前に、必ず読んでおいてください。
一般的に、永続ストレージへのアクセスを取得する場合、ユーザー ID ではなく補助グループ ID を使用することが推奨されます。
上記の ターゲット NFS ディレクトリーの例 では、コンテナーは UID を 65534 (ここではグループ ID を省略します) に設定する必要があります。 したがって以下を Pod 定義に追加することができます。
spec: containers: 1 - name: ... securityContext: runAsUser: 65534 2
デフォルトのプロジェクトと制限付き SCC を前提とする場合は、Pod が要求するユーザー ID 65534 は許可されず、Pod は失敗します。Pod が失敗する理由は以下の通りです。
- 65534 をユーザー ID として要求している。
- ユーザー ID 65534 を許可する SCC を確認するために Pod で利用できるすべての SCC が検査される (実際は SCC のすべてのポリシーがチェックされますが、ここでのフォーカスはユーザー ID になります)。
-
利用可能なすべての SCC は
runAsUser
ストラテジーに MustRunAsRange を使用するため、UID の範囲チェックが必要である。 - 65534 は SCC またはプロジェクトのユーザー ID 範囲に含まれていない。
一般に、事前定義された SCC は変更しないことが勧められています。ただし、この状況を改善するには、ボリュームのセキュリティー のトピックで説明されているようにカスタム SCC を作成することが推奨されます。カスタム SCC は、最小および最大のユーザー ID が定義され、UID 範囲のチェックの実施が設定されており、UID 65534 が許可されるように作成できます。
カスタム SCC を使用するには、まずこれを適切なサービスアカウントに追加する必要があります。たとえば、所定のプロジェクトでは、Pod 仕様において別のサービスアカウントが指定されていない限り、default
のサービスアカウントを使用してください。詳細は、SCC のユーザー、グループまたはプロジェクトへの追加 を参照してください。