Google Cloud 上での SAP プログラム向け Identity and Access Management

Google Cloud リソースを使用するアプリケーション プログラムには、このリソースにアクセスするための Google Cloud Identity と権限が必要となります。

IAM サービス アカウント

Google Cloud において、Identity and Access Management(IAM)はサービス アカウントを使用してプログラムの ID を設定し、ロールを使用してプログラムのサービス アカウントに権限を付与します。

Compute Engine 仮想マシン(VM)で実行される SAP システムと関連プログラムの場合は、SAP システムなどのプログラムが必要とするロールのみの VM サービス アカウントを作成します。

Google Cloud で実行されないプログラムは、Google Cloud API に接続し、サービス アカウント キーを使用して認証を行うときに、サービス アカウントを使用できます。

VM サービス アカウントにプログラムが必要とするロールがあれば、Compute Engine VM で実行されるプログラムは VM のサービス アカウントを使用できます。Compute Engine VM で実行されているプログラムについては、認証にサービス アカウント キーを使用することはおすすめしません。

Google Cloud CLI または Google Cloud Console を使用して VM インスタンスを作成する場合は、VM インスタンスが使用するサービス アカウントの指定や、プロジェクトのデフォルトのサービス アカウントの承認を行えます。また、サービス アカウントを指定しないことも可能です。

Google Cloud CLI や Google Cloud Console を使用せずに、直接 API にリクエストしてインスタンスを作成すると、デフォルトのサービス アカウントはそのインスタンスで有効になりません。

VM サービス アカウントにプログラムで必要なロールがない場合は、VM サービス アカウントにロールを追加するか、サービス アカウントを新しい VM サービス アカウントに置き換えることができます。

プロジェクトの Compute Engine のデフォルト サービス アカウントには、最初に編集者のロールが付与されますが、複数のエンタープライズ環境に対する過度の権限が許可される可能性があります。

Compute Engine でのロール、権限、サービス アカウントの使用について詳しくは、以下をご覧ください。

Google Cloud に幅広く適用される情報については、IAM のドキュメントをご覧ください。

デプロイの自動化とサービス アカウント

Google Cloud が提供する Terraform 構成ファイルまたは Deployment Manager テンプレートを使用して SAP インフラストラクチャをデプロイする場合は、DEPLOYMENT_TYPE.tf または template.yaml 構成ファイルで VM サービス アカウントを指定できます。

サービス アカウントを指定しない場合、Terraform または Deployment Manager は Google Cloud プロジェクトのデフォルトのサービス アカウントを使用して VM をデプロイします。

IAM のロールと権限

IAM では、各 Google Cloud リソースに対して事前定義ロールが用意されています。各ロールには、ロールのレベルに合ったリソースに対する一連の権限が含まれています。作成したサービス アカウントにこれらのロールを追加できます。

極めて限定的にあるいは細かく制御するために、1 つまたは複数の権限を持つカスタムロールを作成できます。

事前定義ロールと各ロールに含まれる権限のリストについては、ロールについてをご覧ください。

カスタムロールの詳細については、カスタムロールについてをご覧ください。

Compute Engine 固有のロールの詳細については、Compute Engine ドキュメントの Compute Engine IAM のロールをご覧ください。

SAP システム用の IAM ロール

SAP プログラムに必要な IAM のロールは、プログラムが使用するリソースとプログラムが実行するタスクによって異なります。

たとえば、Terraform または Deployment Manager を使用して SAP システムをデプロイし、Terraform または Deployment Manager 構成ファイルでサービス アカウントを指定する場合、指定するサービス アカウントには少なくとも次のロールが必要となります。

  • サービス アカウント ユーザー - 常に必要。
  • Compute インスタンス管理者 - 常に必要。
  • ストレージ オブジェクト閲覧者 - デプロイ時に Cloud Storage バケットからインストール メディアをダウンロードする際に必要。
  • ログ書き込み - デプロイやその他のメッセージを Logging に書き込む際に必要。

SAP システムのデプロイ後、ホスト VM と SAP プログラムに、デプロイ時に必要だった権限と同じものがすべて必要となるわけではありません。VM サービス アカウントを編集して、ロールの削除や VM が使用するサービス アカウントの変更をすることが可能です。

SAP プログラムや関連プログラムの中には追加のロールが必要となるものもあります。そのロールが Google Cloud に含まれていない場合は、別のサービス アカウントが必要となることがあります。例:

  • SAP HANA 用 Cloud Storage Backint エージェントでは、Cloud Storage へのバックアップと Cloud Storage からの復元にストレージ オブジェクト管理者のロールが必要です。
  • Google Cloud の SAP 用エージェントには、Compute 閲覧者、モニタリング閲覧者、モニタリング指標の書き込みなどのロールが必要です。詳細については、必要な IAM ロールをご覧ください。
  • SAP Data Services が SAP データを BigQuery にレプリケートするように構成されている場合、BigQuery データ編集者のロールと BigQuery ジョブユーザーのロールの両方が必要となります。