Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

12.5. 許可されたシークレットの管理

API 認証情報を提供するほかに、Pod のサービスアカウントは Pod が使用できるシークレットを決定します。

Pod は以下の 2 つの方法でシークレットを使用します。

  • イメージプルシークレットの使用: Pod のコンテナーのイメージをプルするために使用される認証情報を提供します。
  • マウント可能なシークレットの使用: シークレットの内容をファイルとしてコンテナーに挿入します。

サービスアカウントの Pod がシークレットをイメージプルシークレットとして使用できるようにするには、以下を実行します。

$ oc secrets link --for=pull <serviceaccount-name> <secret-name>

サービスアカウントの Pod がシークレットをマウントできるようにするには、以下を実行します。

$ oc secrets link --for=mount <serviceaccount-name> <secret-name>
注記

シークレットを参照しているサービスアカウントにのみにシークレットを制限することはデフォルトで無効にされています。これは、serviceAccountConfig.limitSecretReferences がマスター設定ファイルで false (デフォルト設定) に設定されている場合はシークレットを --for=mount オプションを使ってサービスアカウントの Pod にマウントする必要がないことを意味します。ただし serviceAccountConfig.limitSecretReferences の値にかかわらず、--for=pull オプションを使用してイメージプルシークレットの使用を有効にする必要はあります。

以下の例では、シークレットを作成し、これをサービスアカウントに追加しています。

$ oc create secret generic secret-plans \
    --from-file=plan1.txt \
    --from-file=plan2.txt
secret/secret-plans

$ oc create secret docker-registry my-pull-secret \
    --docker-username=mastermind \
    --docker-password=12345 \
    --docker-email=mastermind@example.com
secret/my-pull-secret

$ oc secrets link robot secret-plans --for=mount

$ oc secrets link robot my-pull-secret --for=pull

$ oc describe serviceaccount robot
Name:               robot
Labels:             <none>
Image pull secrets:	robot-dockercfg-624cx
                   	my-pull-secret

Mountable secrets: 	robot-token-uzkbh
                   	robot-dockercfg-624cx
                   	secret-plans

Tokens:            	robot-token-8bhpp
                   	robot-token-uzkbh