GCE インスタンスのログイン管理を Google アカウントで行う

Taiga Murakami
google-cloud-jp
Published in
6 min readMay 18, 2018

--

セキュリティ対策の役割分担

全体像

クラウドを利用する中で必要となるセキュリティに関する考え方をおさらいしてみましょう。データセンターを契約し、そこに物理的なサーバーを配置して IT システムを運用するという従来型のモデルではセキュリティに関する対策を全て自身で行う必要がありました。一方、クラウドを利用するとクラウドプロバイダー(Google Cloud Platform = GCP)とセキュリティ対策の役割分担を行う形となります。以下の図は役割分担をまとめたものとなります。

アカウント管理の課題

GCP を利用する場合、ユーザーは Google 管理アカウント(Gmail, Gsuite, Cloud Identityなど)や 3rd party のアカウントを利用して GCP にアクセスします。GCP にアクセスした後は、アカウントに紐付いた権限内で GCP を操作します。ただし前出しました図にある通り、GCE (IaaS) に限ってはユーザー自身でアカウントの管理(OS上のアカウント作成、権限設定等)をする必要がありました。

GCEの IAM の役割を使用してインスタンスへの SSH アクセスを管理する

ユーザ自身で管理が必要であった GCE ※1上(OS上)のアカウント管理に関しても IAM を利用して管理が出来るようになりました。これにより GCP にアクセスするのと同様に GCE インスタンスへのアクセスを管理できるようになりました。これにより従来かかっていた GCE インスタンスの管理コスト削減、アクセス権限の可視化によるセキュリティ向上といった効果が見込まれます。

※1 Linux Guest Environment の最新版がインストールされており、Windows・Container-Optimized OS・CoreOS・SLES を除く Linux 系 OS で実現可能です

実際に設定してみる

IAM の設定

まず誰に権限を与えるべきか検討を行い、アカウントを”OS ログインのみ 可能”なグループと、”OS ログイン後に管理用コマンドを発行可能”なグループの2つに分類します。次に分類したアカウントに対して IAM で設定を行います。分類したグループの前者に対して IAM で”Compute OS ログイン”、後者に対して”Compute OS 管理者ユーザー”、両者に対して”サービス アカウント ユーザー”を付与します。

付与を行う際は、アカウント毎ではなくアカウントをまとめたグループを作成し、グループにたいして権限を設定すると効率的です。

G Suite や Cloud Identity でグループを作成する場合はこちらの手順をご参照ください。https://support.google.com/a/answer/33343?hl=ja

以下の図では、dev@samuraitaiga.io というグループに対して”ログインのみ可能”、sre@samuraitaiga.io というグループに対して”OSログイン後に管理用コマンドを発行可能”な権限を付与する例になります。

詳細についてはこちらを御覧ください。
https://cloud.google.com/compute/docs/instances/managing-instance-access?hl=ja#configure_users

GCE インスタンスの設定

次にログインを許可するインスタンスに対して設定を行います。インスタンスの編集画面から、インスタンスのカスタムメタデータに以下図の設定を行います。

詳細についてはこちらを御覧ください。https://cloud.google.com/compute/docs/instances/managing-instance-access?hl=ja

SSH ログインする

ここまでの設定で”IAM の設定が行われたアカウント(グループ)”は、”設定が行われたインスタンスに対して”アクセスできるようになりました※2。それでは実際にアクセスしてみましょう。IAM で設定したアカウントで GCP にログインし、VMインスタンスの一覧画面をご覧いただきますと、インスタンス名の右側に”SSH”というボタンがありますので、こちらをクリックしてください。そうしますと新しい画面上にコンソールが表示されアクセスができた事がわかります。アクセス権のないアカウントで同様の操作を行いますと、コンソールが表示されません。

※2 IAMで設定を行っていても、カスタムメタデータの設定が行われていないインスタンスに対してはアクセスできません。特定のインスタンスに対してアクセスを許可したい場合は、そのインスタンスにのみカスタムメタデータの設定を行ってください。

まとめ

これまではユーザー自身で管理が必要であった GCE 上(OS上)のアカウント管理ですが、IAM と GCE のカスタムメタデータを組み合わせる事によりGCP から管理を行う事が可能です。これにより管理コストの削減やセキュリティ向上を実現可能です。GCE をご利用の方はぜひ一度こちらの機能をお試しくださいませ。

--

--

Taiga Murakami
google-cloud-jp

Google Cloud Customer Engineer. All views and opinions are my own(すべての見解や意見は私見です).