一時的に昇格したアクセスの概要

機密性の高いリソースを保護する一つの方法は、リソースに対するアクセスを制限することです。ただし、機密性の高いリソースへのアクセスを制限すると、そのリソースにときどきアクセスする必要があるユーザーに負担がかかります。たとえば、インシデントを解決するために、ブレークグラス(緊急時)で機密性の高いリソースへのアクセスが必要になることもあります。

このような場合は、リソースに一時的にアクセスする権限をユーザーに付与することをおすすめします。また、監査プロセスを効率的に行うため、ユーザーがリソースにアクセスする理由を記録しておくことをおすすめします。

Google Cloud では、このような一時的な昇格されたアクセスを管理する方法がいくつかあります。

Google グループ

一時的に昇格されたアクセス権を管理する一つの方法は、Google グループに機密リソースへのアクセス権を付与し、そのグループにユーザーを追加および削除してアクセス権を制御することです。

一時的に昇格されたアクセス権用に Google グループを設定するには、まず、グループを作成してから、ユーザーに一時的に許可するロールを付与します。拒否ポリシーを使用する場合は、予期しない拒否を回避するため、グループを関連する拒否ルールから除外することを検討してください。

グループを設定したら、ユーザーを追加または削除して、ユーザーのアクセス権を変更できます。Google Groups API を使用している場合は、メンバーシップの有効期限を使用することで、ユーザーを一時的にグループに追加できます。

ユーザーが機密性の高いリソースにアクセスする理由を記録する場合は、独自の運用プロセスとツールを定義する必要があります。

たとえば、Compute Engine リソースへの緊急アクセスを管理するには、emergency-compute-access@example.com グループを作成して、Compute 管理者のロール(roles/compute.admin)を付与します。コンピューティング リソースに対して緊急な管理者権限が必要なユーザーは、emergency-compute-access@example.com グループに追加できます。緊急事態が解決したら、そのユーザーをグループから削除します。

IAM Conditions

IAM Conditions を使用すると、期限切れの近いユーザーに Google Cloud リソースへのアクセス権を付与できます。詳細については、一時的なアクセスを構成するをご覧ください。

ユーザーが機密性の高いリソースにアクセスする理由を記録する場合は、独自の運用プロセスとツールを定義する必要があります。

期限切れのロール バインディングは、許可ポリシーから自動的に削除されません。許可ポリシーの最大サイズを超えないようにするため、期限切れのロール バインディングを定期的に削除することをおすすめします。

拒否ポリシーは時間ベースの条件をサポートしていません。そのため、拒否ポリシーの条件を使用して、ユーザーを一拒否ルールから時的に除外することはできません。

ジャストインタイム特権アクセス

ジャストインタイム アクセスはオープンソースのアプリケーションです。IAM Conditions を使用して、Google Cloud リソースに対するジャストインタイム特権アクセスをユーザーに付与します。このアプリケーションは、App Engine または Cloud Run で動作するように設計されています。

条件付きロール バインディングを手動で追加する場合と比べて、このアプリケーションには次のような利点があります。

  • ジャストインタイム アクセスで有効にできるロールを検索できます。
  • アクセス権を取得する前に、理由を示す必要があります。
  • このアプリケーションでは、新しいバインディングを作成する代わりに、既存の条件付きバインディングを置き換えるため、IAM 許可ポリシーのサイズを維持できます。

ジャストインタイム アクセスの詳細については、プロジェクトに対するジャストインタイム特権アクセスを管理するをご覧ください。

サービス アカウントの権限借用

認証されたプリンシパル(ユーザーやサービス アカウントなど)がサービス アカウントとして認証され、サービス アカウントの権限が取得される場合、これはサービス アカウントの権限借用と呼ばれます。サービス アカウントの権限を借用すると、認証されたプリンシパルは、そのサービス アカウントが許可されているすべてのものにアクセスできます。サービス アカウントの権限を借用できるのは、適切な権限を持つ認証済みのプリンシパルのみです。

サービス アカウントを設定して一時的に昇格されたアクセス権を付与するには、サービス アカウントを作成して、ユーザーに一時的に許可するロールを付与します。拒否ポリシーを使用する場合は、予期しない拒否を回避するため、サービス アカウントを関連する拒否ルールから除外することを検討してください。

サービス アカウントを設定したら、ユーザーにサービス アカウントの権限借用を許可して、一時的に昇格したアクセス権を付与できます。ユーザーにサービス アカウントの権限借用を許可する方法はいくつかあります。

  • 有効期間の短いサービス アカウント認証情報を作成できるロールをユーザーに付与します。これにより、ユーザーは有効期間の短い認証情報を使用してサービス アカウントの権限を借用できます。

    これらのロールのいずれかをユーザーに付与すると、ユーザーはいつでもサービス アカウントの権限を借用し、自身の権限を昇格させることができます。ただし、機密性の高いリソースが意図せずにアクセスまたは変更される可能性は低くなります。

    サービス アカウントの権限借用の方法については、サービス アカウントの権限借用を使用するをご覧ください。

  • ユーザーが認証され、理由を入力した後、サービス アカウントの有効期間の短い認証情報をユーザーに提供するトークン ブローカー サービスを作成します。これにより、ユーザーは有効期間の短い認証情報を使用してサービス アカウントの権限を借用できます。

    この方法では、ユーザーにサービス アカウントの権限借用を許可するタイミングを指定できます。

    有効期間の短い認証情報を生成する方法については、有効期間の短いサービス アカウント認証情報を作成するをご覧ください。

サービス アカウントの権限借用の詳細については、サービス アカウントの権限借用をご覧ください。

次のステップ