問題タブ [least-privilege]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
powershell - Just Enough Administration - 「特権が保持されていません」を返すコマンド。
使用する PowerShell 構成を登録しましたが、問題が発生しています。目的は、サービス アカウントがサーバーにリモートでアクセスできるようにする構成を実装し、他のことを実行する機能を許可せずにサーバーを再起動することでした。当然のことながら、JEA が最適であると思われました。構成を次のように登録しました。
登録が成功し、「D7_APP_ServerRestart」グループに含まれるアカウントでセッションに入ることができます。使用Get-Command
すると期待どおりの結果が得られRestart-Computer
ますが、返されるメッセージを実行するPrivilege not held
と、セットアッププロセスの一部が欠けていますか?
EndPoint が登録されているサーバーは 2012R2 です。
database - Web アプリに対する PostgreSQL のアクセス許可の制限
ゴール
3 人のユーザーでデータベースを作成し、その権限を制限します (大声で考えているだけなので、ユーザーの分離も修正の余地があります)。
- スーパーユーザー - このユーザーは、データベースの最初のプロビジョニングを許可します。アプリケーション データベースを作成し、他のユーザーを作成して、権限を設定します。デフォルト
postgres
のスーパーユーザーが機能するので、これで完了です。 - 管理者 - このユーザーは、プロビジョニング中に作成されたデータベースにのみアクセスできます。管理者はすべてのテーブルのすべてのデータをCRUDでき、テーブルなども CRUD できます。「このデータベースのみのスーパーユーザー」タイプの状況。アプリケーションが更新されている場合、管理者は、データベースの移行を処理するために自動ツールによって使用されるユーザーです。
- アプリ ユーザー - このユーザーは、最終的に Web アプリの機能をサポートするユーザーです。これは、Web ページなどのユーザーとは関係がないことに注意してください。これは、サーバーがクエリの実行、データの挿入および削除に利用するユーザーです。このユーザーが何かのアクセス許可を変更したり、テーブルやインデックス、または構造的なものを作成/破棄したりできないことを明示的に望んでいません。
私が試したこと
まず最初に、(一般的に優れた) PostgreSQL のドキュメントを見ると、Grant のページにかなり目がくらみます。PostgreSQL のロールと権限について数時間読んだ後、私は一般的に混乱しています。もう少し作業すれば、管理者ユーザーに必要なものを突き止めることができると思いますが、「アプリユーザー」にかなりこだわっています。私はここまで来ました (命名とパスワードはすべて単なるプレースホルダーです):
そして、ここで私は確信が持てなくなります。私が避けようとしている答えは、「デフォルトですべてを取り消してから、すべての異なるオブジェクトのすべての異なるレベルで必要なすべての特権を列挙する」ということだと思います。そこに何が必要なのかわからないので、それを避けようとしています。それが答えである場合、私はただ身を潜めてもっとたくさん読む必要がありますが、一般的に、そのような道をたどり始めると、何かを見落としています.
問題
権限を制限しapp-user
て、構造データを変更できないようにする (たとえば、テーブルを追加または破棄できない) が、行に接続して何かを実行できるようにする (行レベルのセキュリティは私のレーダーにさえありません)。この特権の一般的なモデルは、PostgreSQL が期待するものと実際には同期していませんか? このようなことを達成するために、その「助成金」ページのすべてのオプションを確認しなければならない場合、何かが欠けているように感じます。それ。
環境
初めてのエンド ツー エンドの Web アプリケーションを構築しようとしています。私は一般的なソフトウェア開発と Web アプリ開発を十分に行ってきました。今では、日常的に当たり前のことと考えている部分を理解しようとしています。最小権限の原則を念頭に置きながら、PostgreSQL サーバーをセットアップしようとしています。
サイドクエスト
私が開発チームに参加したばかりの Web アプリでこれが行われたのを見たことはありませんが、それらは一般的に小規模であり、あまり使用されていません。これを行うと、実際に何かが達成されますか? このようなことをする理由、またはそれが悪いまたは効果のないアイデアである理由について、説得力のある理由を誰かが持っていますか? 最終的に SQL インジェクションの脆弱性に遭遇したとしても、データベース ユーザーのアクセスが制限されるため、被害が軽減されると想定していました。それは見当違いですか?
この件に関して私が見つけたきちんとした記事:
- http://www.ibm.com/developerworks/opensource/library/os-postgresecurity/index.html
- PDF 警告: https://wiki.postgresql.org/images/d/d1/Managing_rights_in_postgresql.pdf
- https://www.digitalocean.com/community/tutorials/how-to-use-roles-and-manage-grant-permissions-in-postgresql-on-a-vps--2
- http://blog.2ndquadrant.com/auditing-users-and-roles-in-postgresql/