web-dev-qa-db-ja.com

共有ユーザーとしてログインするのは悪い習慣ですか?

私は、マシンにログインしたい人ごとに新しいUbuntuユーザーを作成する代わりに、システム管理者が各ユーザーのsshキーを.ssh/authorized_keysに追加し、全員がsshsをマシンは(egubuntu@Hostまたはec2-user@Hostとして。 (ちなみに、これはラボの設定で共有Mac miniで実行されていることも確認しました。)これは受け入れられている方法ですか、それともアンチパターンですか?

問題のホストは主にテストに使用されますが、通常はユーザーごとの構成が必要であり、特定のユーザーによって実行されたものとして追跡されるアクションもあります。たとえば、現在一般的なgitを使用して実行されているgitコミットの作成やプッシュなどです。ユーザー。

35

はい、それは悪い習慣です。これは、悪意のある人が周りにいない(または存在しない)こと、および誰も間違えないことを基本的な前提としています。アカウントを共有すると、説明責任や制限なしに事態が発生するのは簡単です。ユーザーが何かを壊すと、誰にとってもそれが破られます。

このuid共有スキームの理由が、新しいアカウントの作成と構成の共有の管理コストを単に削減することである場合、おそらく管理者は AnsibleChefPuppet または Salt を使用すると、複数のマシンでユーザーアカウントを作成するようなことが非常に簡単になります。

42
thkala

これから始めてもショックはありません。非常に安全な環境で作業しています。誰もが自分のユーザーとマシン、およびsshキーを持っています。サーバーで作業するために、必要に応じて、rootまたは別のユーザーとして、ログリレーを介してsshでログインします。私たちが行うことはすべて、sshキーの所有者によって行われたものとしてログに記録されるので、説明責任はOKです。

代わりは何でしょうか? rootは言うまでもなく、多くのことを特定のユーザーとして行う必要があります。須藤?これは、特定の非常に制限されたタスクでは問題ありませんが、マシンのシステム管理では問題です。

ただし、最後の段落についてはわかりませんが、誰かが一般ユーザーをgit commitでプッシュできるということですか?それは説明責任を壊し、説明責任を壊すことは悪いことです。ログインしたマシンからgitを実行し、sshキーでgitの認証を行います...

認証、承認、アカウンティング(AAA)は古典的な表現です:sshキーで認証され、キーがauthorized_keysにあるため、一般ユーザーが実行できるすべての操作を許可されます。事後レビューが可能です。

7
Law29

それは明らかにシステムのユースケースに依存します。時々テストするシステムであれば、私にとっては問題ありません。そのようなシステムもあります。会社にID管理(LDAP、IPA)の種類がない場合、ランダムシステムでリモートコントロールを使用せずに新しいユーザーを作成することは非常に負担になります。

しかし、誰かの間違いが会社全体を運営できなくする毎日の仕事のために、それは良い考えではありません。

3
Jakuje

これらすべての回答は、それ自体が重要かつ実際の問題であるアカウンタビリティの懸念に対処していますが、共有アカウントを使用すると、他のユーザーへのそれほど微妙でない攻撃も可能になります。

攻撃者が、入力したパスワードをログに記録し、その共有ユーザーのsshに悪意のあるPATHスクリプトを作成することを検討します(これは簡単に実行できます)。今度は、共有ユーザーでそのマシンにログオンし、他の場所(今回は個人の非共有アカウント)にsshすることに決めた次の人は、意外な驚きをするかもしれません。

基本的に、コンピューターで共有アカウントを使用することは、公共スイミングプールの足湯から飲むのと同じです。

3
ereOn

一般に、次の理由により、1つのアカウントを共有することはお勧めできません。

  1. このユーザーに対して行われたすべての設定は、ログインしているすべてのユーザーに影響します。(Promt、エイリアス、...)
    1. 誰が何をしたかを知る可能性を失う(説明責任)
    2. アカウントの構成の1つの間違い(たとえば、誤ってssh kayを削除する)は、そのユーザーアカウントを使用するすべてのユーザーに影響します(この例ではロックアウト)。

確かに、もっとマイナス面もあります...しかし、それ以上は知りたくありません。

ポイントは、すべての管理者がアクセスできる必要がある特定のユーザーアカウントで実行されるサービスを管理するためにアカウントを共有する必要に直面している可能性があるということです。

このような設定では、このアカウントを共有してログインする可能性があります(上記の理由から、私はそうしない方がいいです)、または個別にログインしてユーザーを共有アカウントに切り替えます(私はそれをお勧めします)。

監査ツールを使用すると、誰が何を実行したかを追跡できますが、同じアカウントを共有しています。

1
Gerhard