実践teleport

Pocket

実践teleport

teleportについては過去記事を参照してください。

teleport動作構成

バックアップ

/etc/teleport.yamlにteleportの起動オプションが記載されている。
/var/lib/teleport/ディレクトリにteleportの設定データが入る。

デーモン起動

Ubuntuの場合は/etc/systemd/system/teleport.serviceSystemd unit fileを作成してsystemctl daemon-reloadを実行。

systemctlコマンドが利用できるようになるので自動起動設定をしておく。
systemctl enable teleport

参考:デーモン起動公式DOC

teleport ユーザーとロールの紐づけ

ローカルユーザーの場合はユーザーそのものにRole紐づけ項目がある。
SSOユーザーの場合はAuth Connectorsspec.teams_to_logins[].logins[]に紐づけるRoleの一覧を設定する。

teleport デフォルトロール

インストール直後では初期ユーザーが利用できる。
初期ユーザーにはデフォルトロール「access」「editor」が付与されている。

teleport サーバー権限の設定

root等別のアカウントにログインできるようにするにはRoleを別途作成する。
Roleのyamlの中でspec.allow.loginsにログインを許可するアカウント名を指定する。

kind: role
metadata:
  id: 1653xxxxxxxxxxx0568
  name: server-admin
spec:
  allow:
    logins:
    - '{{internal.logins}}' ←ログインユーザーと同じ名前のユーザーが対象サーバー上に存在した場合、そのユーザーでログインできるようになる。
    - root                 ←サーバーのrootユーザーへのログイン許可
    node_labels:
      '*': '*'             ←ラベル指定で権限付与対象のサーバーを指定。サーバーのラベルは対象サーバーの`/etc/teleport.yaml`に設定※起動設定によってConfigの場所が違う場合もある。
~省略~

terraformで管理することも可能。
teleport公式DOC

teleport k8s権限設定

以下4ステップでいける。

  1. 通信を許可する: teleport-proxy => k8s-api:6443
  2. 通信を許可する: k8s-node -> teleport-proxy:443
  3. teleport-roleのspec.allow.kubernetes_groups[]spec.allow.kubernetes_users[]とClusterRoleBindingのsubjectsを紐づける
  4. helmでインストール実施。

teleport database権限設定

teleport proxyにDatabaseへの接続設定を入れることで接続できる。※/etc/teleport.yamlを編集して再起動すれば良い。
teleportから常にアクセスできる状態を維持し、teleportがアクセス権限の管理を代行するというコンセプトを理解すればとっつきやすくやるのではないかと思われる。

AWSへの接続の場合はAWS用の設定がある。
Azureへの接続の場合はマネージドID認証を使用せよとのこと。teleport管理者のみが利用できる踏台VMを用意してここにteleport proxyを入れて管理するのがよさそう。
GoogleCloudもIAM ServiceAccountというSPと似たような機能を使う。GCPの場合は環境変数GOOGLE_APPLICATION_CREDENTIALSでServiceAccountKeyのページからダウンロードしてきたjsonファイルのパスを指定するとのこと。※公式DOC

teleport apps権限設定

DBと同じくteleport proxyにWEBアプリへの接続設定を入れることで接続できる。※/etc/teleport.yamlを編集して再起動すれば良い。
以下できること。

  • 接続先アプリケーションにJWTトークンを送信できるので認証統合することも可能。
  • ログインすると短寿命のクライアント証明書が発行されるが、tshコマンドで証明書が発行されたパスを取得することができる。
  • AWSコンソールの認証統合に利用可能。

teleport desktop

WindowsのRDP接続機能。
ActiveDirectoryドメインへの接続が必須。

ドキュメントにはWindowsのみ可能でxrdp等Linuxでは利用できないとあるが、XRDPをADで認証できればいけるかもしれない。
【前半】ACTIVEDIRECTORY認証でXRDPする参考サイト※英語 – XRDP x AD認証
【後半】ACTIVEDIRECTORY認証でXRDPする参考サイト※英語 – XRDP x SSSDによる承認

とはいえRDP使うならWindowsだろうから気にしなくてもよさそう。

まとめ

流し読みでおおよそセットアップできそうな感じにまとめてみた。
とにかく/etc/teleport.yamlにプロキシ設定を書いていく、という基本構成がわかっていればだいぶ導入のハードルは下がるのではないかと思う。

Pocket

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です