パスワードなしのsudoを持つansibleユーザーがいるのは安全ですか?


10

Ansibleは初めてです。これまでに見たほとんどのVPSプロビジョニングガイドは次のとおりです。

  1. rootがログインできないようにする
  2. ssh(パスワードではなく)でのみログインできる新しいユーザーを作成する
  3. パスワードなしのsudo権限wheelを使用して、新しいユーザーをグループに追加します

(1)と(2)は理解できますが、(3)は理解できません。

確かにパスワードなしsudoはちょうどとしてログインするのと同じrootですか?メリット(便利さ)はわかりましたが、これは非常に安全ではありませんか?

管理者はさまざまな方法でネットワークを運用しているので、これは「主観的」であると言えるかもしれませんが、これは非常に一般的な慣例であり、さまざまな公式のansible docsやホスティング会社が発行するガイドにも示されています。それは常識に反します。その背後にある論理は何ですか?


1
Ansibleは管理タスクの自動化を目的としているため、通常はトップレベル(ルート)レベルのアクセスが必要なので、「パスワードなしのsudo」が必要です。ただし、システムで使用できるコマンドのサブセットを実行するだけでよい場合は、より詳細なsudo構成を使用して、それらのコマンドだけに制限できます。パスワードなしのsudoは、必ずしもrootが実行できるすべての機能へのアクセスを意味するわけではありません(ただし、ユーザーがsudoを介してsudo構成を変更して自分自身をより強力に制御できることに気づくと、これを強制することが難しくなります...)。
デビッドスピレット

@DavidSpillett私はそれについて不思議に思っていました-つまり、sudoersファイルでどのsudoコマンドを許可するかを定義しています...
lonix

回答:


18

サービスアカウントがパスワードなしのsudoを実行できる場合、そのアカウントへのアクセスを保護する必要があります。

アカウントを持っていないパスワードを持って、そしてそれにログインするだけで、SSHキーを使用して、これを実現し、あなたが同様に安全なSSH秘密鍵を維持することができます提供。


ですから、私はこの慣習に混乱している感覚で「ある種の」権利を持っています-それでも、これは必要性/プラグマティズムからの、無意識の慣習です。
lonix

つまり、基本的なセキュリティをVPSからansibleアカウントのsshキーを含むローカルシステムに「移動」すると私は言っていますか。その場合、弱点はVPS自体ではなく、私です。そして、私は、ssshキーを保護するために、慎重な自動化がもたらす便利さと引き換えに、さらに警戒する必要があります。
lonix

6
ssh-agentで保護されたパスフレーズであるsshキーは、適度に優れた資格です。
John Mahowald

@lonixすべての保護されたシステムには資格情報が必要です。セキュリティで保護されたシステムは、100%アクセスできるため、これらの資格情報を保護するための手段と同じくらい安全です。つまり、SSHキー(またはrootパスワードなど)を適切に保護しないと、VPSを保護することはできません。パスワードなしのsudoを構成するという事実は、この観点からは何も意味しません。パスワードでsudoを有効にしても、SSHキーを保護することが不可欠であるという事実は変わりません。
ジャコモアルゼッタ

@GiacomoAlzetta私が知っていること、私が上記で意味したことは、責任がリモートマシンからローカルマシンに移されているということです。sudoエスカレーションはパスワードなしで行われるため、弱点はローカルになります。
lonix

4

(2)で作成された新しいユーザーは、SSHキーでのみログインでき、パスワードはありません。SSHキーは、間接的なrootアクセスを提供します。したがって、これはキーでrootログインを許可することと同じです。

アカウントにはパスワードがないsudoため、パスワードを要求することはできません。また、Ansibleはコマンドを実行できる必要があります。キーと同じ場所に追加のパスワードを入力しても、セキュリティは向上しません。


2

問題は、ansibleは管理者と自動化のためのものであるため、スクリプトを実行するためにパスワードを入力する必要がある場合は、最善の方法ではないということです。また、sudoのパスワードをファイルまたはデータベースに保存することは安全ではなく、プレイブックを実行するたびに取得できます。したがって、パスワードなしのsudoとssh鍵による認証の組み合わせは、プレイブックを実行してセキュリティを確保し、正しい問題を発生させないための最良の方法です。また、あなたは管理者であり、プレイブックでプログラミングする内容を知っています。したがって、プレイブックはサーバーを破壊することはできません。


Playbook システム破壊する可能性がありますが、個別のテスト環境のみのキーを使用する場合、本番ホストは破壊されません。
John Mahowald

正確に言えば、これは生産的なシステムで作業する場合の前提条件です。
NicoKlaus

1
Ansibleには「ansible-vault」と、bitwarden、hashicorp vault、keepassなどの多くのサードパーティのシークレットストレージシステムにシークレットを保存できるプラグイン/モジュール/ライブラリがあります。
Zoredache
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.