私はGCEで実行されているCoreOSクラスターを持っています。すべてのGCEインスタンスで気付いた1つの問題は、Google Cloud Platformのプロジェクトで認証されている限り、ほとんど何でもログインできるということです。サーバー。これは私にとって問題です。チームの誰もが、またはプロジェクトに参加する人はだれでも、誰でもサーバーに直接sshできるからです。これを無効にして、有効期限が切れたsshキーとパスワードを指定したcloud-configファイルで作成したユーザーのみを使用します。これを行うにあたり、GoogleがGCEでユーザーを作成する方法に興味がありますか?そして誰かがこれを無効にする方法を見つけましたか?
Google-account-managerサービスが実行されないようにすることで、GCEインスタンスがアカウントを追加しないようにすることができます。 CoreOSでは、Sudo systemctl stop google-accounts-manager.service
を使用してこのサービスを停止し、Sudo systemctl disable google-accounts-manager.service
を使用して永続的に無効にすることができます。
イメージを作成する サービスを事前に無効にして(またはユニットファイルを削除して)、インスタンスを作成するときにサービスを無効にする前にアカウントを作成しないようにすることができます。
2017年3月の時点で、GCEのすべてのイメージにデプロイされているアカウントデーモンを無効にすることで、アカウントが作成されないようにすることができます。
それを行うには:
次の内容の/etc/default/instance_configs.cfg.template
ファイルを作成します。
[Daemons]
accounts_daemon = false
/usr/bin/google_instance_setup
を実行します
これにより、デーモンのパッケージが更新された場合でも、デーモンが完全に停止して無効になります。
GoogleCloudPlatform/compute-image-packages project README and code)で、GoogleがGCEシステムイメージにデプロイしたデーモンやその他の詳細について読むことができます。
ユーザーがプロジェクトへの「編集」アクセス権を持っている場合、ユーザーは メタデータを編集できるため、任意のVM(およびパスワードなしのSudo
アクセス権)にSSHで接続できます) 任意のVMまたはプロジェクト自体に公開SSHキーを追加するための gcloud
が自動的に行うことあなたが使う - gcloud compute ssh
または、UIの[SSH]ボタンをクリックした場合。
この機能を無効にすることはできません。GSHVMインスタンスは、ユーザーアカウントやSSHキーなしで起動し、継承することにより、独自に作成したインスタンスにSSHで接続できないためです。プロジェクトから、または実行中のメタデータへの変更から、実行中のVM metadata を変更してユーザーを動的に追加できます。 VM上のデーモンは、自動的にユーザーアカウントを作成します。
どのインスタンスにSSHでアクセスできるかを制御する場合は、ユーザーに編集ではなく表示アクセスを許可し、アクセスを許可するインスタンスにのみSSHキーを手動で追加します。または、パスワードベースのSSHを有効にして、ユーザーアカウントを追加します。
これを書いている時点(2015年8月28日)には、VMに新しいユーザーアカウントを作成するために使用できる programmatic user account access のアルファ版があります。現時点では招待制のため、このAPIのホワイトリストへの登録をリクエストできます。