実践teleport
実践teleport
teleportについては過去記事を参照してください。
teleport動作構成
バックアップ /etc/teleport.yamlにteleportの起動オプションが記載されている。 /var/lib/teleport/ディレクトリにteleportの設定データが入る。 デーモン起動 Ubuntuの場合は/etc/systemd/system/teleport.serviceにSystemd unit fileを作成してsystemctl daemon-reloadを実行。 systemctlコマンドが利用できるようになるので自動起動設定をしておく。 systemctl enable teleport 参考:デーモン起動公式DOC teleport ユーザーとロールの紐づけ ローカルユーザーの場合はユーザーそのものにRole紐づけ項目がある。 SSOユーザーの場合はAuth Connectorsのspec.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ステップでいける。
通信を許可する: teleport-proxy => k8s-api:6443
通信を許可する: k8s-node -> teleport-proxy:443
teleport-roleのspec.allow.kubernetes_groups[]かspec.allow.kubernetes_users[]とClusterRoleBindingのsubjectsを紐づける
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にプロキシ設定を書いていく、という基本構成がわかっていればだいぶ導入のハードルは下がるのではないかと思う。