LoginSignup
0
1

More than 1 year has passed since last update.

【Red Hat OpenShift Administration対策】(4)サービスアカウントの作成と適用

Posted at

しばらく放置していましたが、やり始めたからには完成させないと!とある時急に思い立ったため、Red Hat openshift Administration試験(EX280)の勉強記事を完成させることにしました。今回で四回目です。(筆者は既にEX280合格済み)
今回はサービスアカウントの作成と適用について書きます。

サービスアカウントとは

二回目の記事で書いた通り、Openshiftのユーザーは(1)一般ユーザー、(2)システムユーザー、(3)サービスアカウントに分けられます。
サービスアカウントは、プロジェクト作成時にプロジェクト単位で生成されるシステムユーザーアカウントです。プロジェクト単位のアクセス制限を行うために使用されます。system:serviceaccount:project1:user1などがあります。

Openshiftでは、デフォルトでは作成したPodに対し、restrictedというセキュリティコンテクスト制約(SCC:Security Context Constraints)が適用されています。これは、作成したPodが外部リソースへアクセスすることを制限する機能です。
例えば、デフォルトの状態では、作成したPodはPort 80を使ってアクセスさせるためのサービスを起動することもできません。

このため、Podを作成した際は、一定の権限を持つサービスアカウントを作成し、そのサービスアカウントをPodに割り当てるという作業をする必要があります。

公式サイトの説明:
https://access.redhat.com/documentation/ja-jp/openshift_container_platform/3.9/html/cluster_administration/admin-guide-manage-scc

SCCの種類

SCCにはいくつかの種類があります。
自分でSCCを作成することもできますが、EX280の範囲ではデフォルトで作成されていたSCCを、自分で新規作成したサービスアカウントに適用できれば十分です。

デフォルトで用意されているSCCは合計8つありますが、とりあえずは以下3つだけ覚えておけば十分と思われます。
EX280を合格するだけであれば、おそらくanyuidだけ覚えておけば大丈夫ではないでしょうか。(根拠なし)

SCC名 説明
privileged 特権付きSCC。ホスト/Podへのrootアクセスが可能であり、ホストによるPodの作成・削除、Podへのrootアクセスが可能。
anyuid 特権なしSCC。Podへのrootアクセスが可能。
restricted 制限SCC。デフォルトの権限はこちら。Podへのrootアクセスができない他、外部リソースを使用することもできない。

ちなみに、以下のコマンドでデフォルトで用意されたSCCの一覧を取得することができます。

oc get scc

以下で詳細情報を取得することもできます。

oc describe scc anyuid

サービスアカウントの作成と適用

サービスアカウントは、Podをデプロイした後、権限が不足している場合に必要な権限を付与するために作成・適用します。
とりあえずここではtest-podというPodがデプロイされていることとします。このPodに対するrootアクセス権を付与したいと考えていることにします。

"sa"というサービスアカウントを作成することを考えます。サービスアカウントは以下のコマンドで作成できます。

oc create serviceaccount sa

次に、anyuid権限をサービスアカウントに割り当てます。-zオプションを忘れずに付けるようにしてください。

oc adm policy add-scc-to-user anyuid -z sa

作成したsaをtest-podに適用するコマンドは以下です。

oc set serviceaccount deployment/test-pod sa

三行なので、暗記しても良いかもしれません。繰り返しになりますが、-zオプションを忘れずに使用する様にしましょう。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1