arrow_back

IAM カスタムロール

参加 ログイン
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

IAM カスタムロール

Lab 1時間 universal_currency_alt クレジット: 1 show_chart 入門
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP190

Google Cloud セルフペース ラボ

概要

Cloud IAM にはリソースの権限を管理するための適切なツールが用意されており、少ない手間で高度な自動化を実現できます。ユーザーに権限を直接付与する代わりに、権限を組み合わせたロールを割り当てます。これにより、社内の職務権限をグループやロールにマッピングできます。ユーザーは自分の行うべきジョブにのみアクセスでき、管理者はユーザー グループ全体に対してデフォルトの権限を簡単に付与できます。

Cloud IAM では、次の 2 種類のロールがあります。

  • 事前定義されたロール
  • カスタムロール

事前定義ロールは、Google によって作成、管理されます。その権限は、Google Cloud に新しい機能やサービスが追加された場合など、必要に応じて自動的に更新されます。

カスタムロールはユーザー定義であり、特定のニーズに合わせて 1 つ以上のサポートされている権限をバンドルできます。カスタムロールは Google によって管理されません。Google Cloud が新しい権限、機能、サービスを追加しても、カスタムロールは自動的に更新されません。カスタムロールは、使用可能な Cloud IAM 権限を組み合わせて作成します。権限により、ユーザーは Google Cloud のリソースに特定の操作を行うことができるようになります。

学習内容

このラボでは、カスタムロールを作成、更新、削除、復元します。

前提条件

学習を最適化するために、IAM ロールに精通していることを推奨します。

設定と要件

[ラボを開始] ボタンをクリックする前に

こちらの手順をお読みください。ラボの時間は記録されており、一時停止することはできません。[ラボを開始] をクリックするとスタートするタイマーは、Google Cloud のリソースを利用できる時間を示しています。

このハンズオンラボでは、シミュレーションやデモ環境ではなく、実際のクラウド環境を使ってご自身でラボのアクティビティを行うことができます。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。

このラボを完了するためには、下記が必要です。

  • 標準的なインターネット ブラウザ(Chrome を推奨)
注: このラボの実行には、シークレット モードまたはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウント間の競合を防ぎ、個人アカウントに追加料金が発生することを防ぎます。
  • ラボを完了するために十分な時間を確保してください。ラボをいったん開始すると一時停止することはできません。
注: すでに個人の Google Cloud アカウントやプロジェクトをお持ちの場合でも、このラボでは使用しないでください。アカウントへの追加料金が発生する可能性があります。

ラボを開始して Google Cloud コンソールにログインする方法

  1. [ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるポップアップでお支払い方法を選択してください。 左側の [ラボの詳細] パネルには、以下が表示されます。

    • [Google コンソールを開く] ボタン
    • 残り時間
    • このラボで使用する必要がある一時的な認証情報
    • このラボを行うために必要なその他の情報(ある場合)
  2. [Google コンソールを開く] をクリックします。 ラボでリソースが起動し、別のタブで [ログイン] ページが表示されます。

    ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。

    注: [アカウントの選択] ダイアログが表示されたら、[別のアカウントを使用] をクリックします。
  3. 必要に応じて、[ラボの詳細] パネルから [ユーザー名] をコピーして [ログイン] ダイアログに貼り付けます。[次へ] をクリックします。

  4. [ラボの詳細] パネルから [パスワード] をコピーして [ようこそ] ダイアログに貼り付けます。[次へ] をクリックします。

    重要: 認証情報は左側のパネルに表示されたものを使用してください。Google Cloud Skills Boost の認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。
  5. その後次のように進みます。

    • 利用規約に同意してください。
    • 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
    • 無料トライアルには登録しないでください。

その後このタブで Cloud Console が開きます。

注: 左上にある [ナビゲーション メニュー] をクリックすると、Google Cloud のプロダクトやサービスのリストが含まれるメニューが表示されます。 ナビゲーション メニュー アイコン

Cloud Shell をアクティブにする

Cloud Shell は、開発ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。

  1. Google Cloud コンソールの上部にある「Cloud Shell をアクティブにする」アイコン 「Cloud Shell をアクティブにする」アイコン をクリックします。

接続した時点で認証が完了しており、プロジェクトに各自の PROJECT_ID が設定されます。出力には、このセッションの PROJECT_ID を宣言する次の行が含まれています。

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

gcloud は Google Cloud のコマンドライン ツールです。このツールは、Cloud Shell にプリインストールされており、タブ補完がサポートされています。

  1. (省略可)次のコマンドを使用すると、有効なアカウント名を一覧表示できます。
gcloud auth list
  1. [承認] をクリックします。

  2. 出力は次のようになります。

出力:

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (省略可)次のコマンドを使用すると、プロジェクト ID を一覧表示できます。
gcloud config list project

出力:

[core] project = <project_ID>

出力例:

[core] project = qwiklabs-gcp-44776a13dea667a6 注: Google Cloud における gcloud ドキュメントの全文については、gcloud CLI の概要ガイドをご覧ください。

プロジェクトのリージョンを設定する

次のコマンドを実行して、プロジェクトのリージョンを設定します。

gcloud config set compute/region {{{project_0.default_region | Region}}}

IAM カスタムロール

Cloud IAM では、Cloud IAM のロールをカスタマイズすることもできます。ここでは、1 つ以上の権限を持つカスタムの Cloud IAM のロールを作成してユーザーに付与できます。Cloud IAM には、カスタムロールを作成して管理するための UI と API が用意されています。

重要なポイント: カスタムロールを使用すると、組織内のユーザー アカウントとサービス アカウントで目的の機能を使用するために必要な権限のみが付与されるように、最小権限の原則を適用できます。

注: カスタムロールは、組織レベルとプロジェクト レベルで作成できますが、フォルダレベルで作成することはできません。

カスタムロールは、使用可能な Cloud IAM 権限を組み合わせて作成します。権限により、ユーザーは Google Cloud のリソースに特定の操作を行うことができるようになります。

Cloud IAM の環境では、権限が次の形式で表されます。

<サービス>.<リソース>.<動作>

たとえば、compute.instances.list 権限を持つユーザーは所有する Compute Engine インスタンスを一覧表示でき、compute.instances.stop 権限を持つユーザーは VM を停止できます。

権限は通常は REST メソッドと 1:1 に対応しています(そうでない場合もあります)。つまり、Google Cloud の各サービスには、各 REST メソッドに対して関連付けられている権限があります。メソッドを呼び出すには、呼び出し元にその権限が必要です。たとえば、topic.publish() の呼び出し元には pubsub.topics.publish 権限が必要です。

カスタムロールは、ロールやリソースを所有するのと同じプロジェクトまたは組織のポリシーで権限を付与するためにのみ使用できます。あるプロジェクトまたは組織のカスタムロールを、別のプロジェクトまたは組織が所有するリソースに対して付与することはできません。

必要な権限とロール

カスタムロールを作成するには、呼び出し元に iam.roles.create 権限が必要です。

オーナー以外のユーザー(組織管理者を含む)には、「組織のロールの管理者」のロール(roles/iam.organizationRoleAdmin)または「IAM ロールの管理者」のロール(roles/iam.roleAdmin)のいずれかを割り当てる必要があります。IAM セキュリティ レビュー担当者のロール(roles/iam.securityReviewer)を使用すると、カスタムロールを表示できますが管理はできません。

カスタムロールのユーザー インターフェースは、Cloud コンソールの IAM ロールにあります。これは、カスタムロールを作成または管理する権限を持つユーザーのみが使用できます。デフォルトでは、プロジェクト オーナーのみが新しいロールを作成できます。プロジェクト オーナーは、同じプロジェクトの他のユーザーに IAM ロールの管理者ロールを付与することで、この機能へのアクセスを制御できます。組織の場合は、組織管理者のみが組織のロールの管理者ロールを付与できます。

カスタムロールを作成する準備

カスタムロールを作成する前に、次を確認しておくことをおすすめします。

  • リソースに適用できる権限の種類
  • リソースに付与できるロールの種類
  • ロール メタデータの内容

タスク 1. リソースで使用可能な権限の表示

カスタムロールを作成する前に、リソースに適用できる権限を確認しておくことをおすすめします。リソースとその下位にあるリソースに適用可能な権限を確認するには、gcloud コマンドライン ツール、Cloud コンソールまたは IAM API を使用します。たとえば、組織と組織内のプロジェクトに適用できるすべての権限を確認できます。

  • 以下のコマンドを実行して、プロジェクトで利用可能な権限の一覧を確認します。
gcloud iam list-testable-permissions //cloudresourcemanager.googleapis.com/projects/$DEVSHELL_PROJECT_ID

出力:

name: appengine.applications.create stage: GA --- name: appengine.applications.get stage: GA --- name: appengine.applications.update stage: GA --- name: appengine.instances.delete stage: GA --- name: appengine.instances.get stage: GA --- name: appengine.instances.list stage: GA --- customRolesSupportLevel: TESTING name: appengine.memcache.addKey stage: BETA --- customRolesSupportLevel: TESTING name: appengine.memcache.flush stage: BETA ---

タスク 2. ロール メタデータを取得する

カスタムロールを作成する前に、事前定義済みのロールとカスタムロールの両方のメタデータを取得しておくことをおすすめします。ロール メタデータには、そのロールの ID と権限が含まれます。メタデータを表示するには、Cloud コンソールまたは IAM API を使用します。

  • ロール メタデータを表示するには、以下のコマンドを使用します。[ROLE_NAME] はロール(roles/viewerroles/editor など)に置き換えます。
gcloud iam roles describe [ROLE_NAME]

roles/viewer の出力例:

description: Read access to all custom roles in the project. etag: AA== includedPermissions: - iam.roles.get - iam.roles.list - resourcemanager.projects.get - resourcemanager.projects.getIamPolicy ... ... name: roles/iam.roleViewer stage: GA title: Viewer

タスク 3. リソースに対して付与可能なロールの表示

特定のリソースに適用できるすべてのロールのリストを返すには、gcloud iam list-grantable-roles コマンドを使用します。

  • 次の gcloud コマンドを実行して、プロジェクトから付与できるロールを一覧表示します。
gcloud iam list-grantable-roles //cloudresourcemanager.googleapis.com/projects/$DEVSHELL_PROJECT_ID

出力は次のようになります。

--- description: Full management of App Engine apps (but not storage). name: roles/appengine.appAdmin title: App Engine Admin --- description: Ability to view App Engine app status. name: roles/appengine.appViewer title: App Engine Viewer --- description: Ability to view App Engine app status and deployed source code. name: roles/appengine.codeViewer title: App Engine Code Viewer --- ... ...

カスタムロールを作成する

カスタムロールを作成するには、呼び出し元に iam.roles.create 権限が必要です。デフォルトでは、プロジェクトや組織のオーナーがこの権限を持ち、カスタムロールを作成して管理できます。

オーナー以外のユーザー(組織の管理者など)には、「組織のロールの管理者」または「IAM ロールの管理者」のロールのいずれかを割り当てる必要があります。

新しいカスタムロールを次の 2 つの方法で作成するには、gcloud iam roles create コマンドを使用します。

  • ロール定義が含まれる YAML ファイルを使用する
  • フラグを使用して、ロール定義を指定する

カスタムロールを作成する際には、--organization [ORGANIZATION-ID] フラグまたは --project [PROJECT-ID] フラグを使用して、組織レベルまたはプロジェクト レベルのどちらに適用するかを指定する必要があります。下の各例では、プロジェクト レベルでカスタムロールを作成します。

次のセクションでは、プロジェクト レベルでカスタムロールを作成します。

タスク 4. YAML ファイルを使用してカスタムロールを作成する

カスタムロール定義が含まれる YAML ファイルを作成します。このファイルは次のような構造にする必要があります。

title: [ROLE_TITLE] description: [ROLE_DESCRIPTION] stage: [LAUNCH_STAGE] includedPermissions: - [PERMISSION_1] - [PERMISSION_2]

各プレースホルダ値の詳細は、以下のとおりです。

  • [ROLE-TITLE] はロールのわかりやすいタイトルです。例: Role Viewer
  • [ROLE_DESCRIPTION] は、ロールについての短い説明です。例: My custom role description
  • [LAUNCH-STAGE] はリリースのライフサイクルにおけるロールの段階を示します。例: ALPHA、BETA、GA。
  • [includedPermissions] はカスタムロールに含める権限(複数可)のリストを指定します。例: iam.roles.get
  1. 次に、以下を実行してロール定義の YAML ファイルを作成します。
nano role-definition.yaml
  1. このカスタムロールの定義を YAML ファイルに追加します。
title: "Role Editor" description: "Edit access for App Versions" stage: "ALPHA" includedPermissions: - appengine.versions.create - appengine.versions.delete
  1. 次に、CTRL+XYENTER の順にキーを押してファイルを保存して閉じます。

  2. 次の gcloud コマンドを実行します。

gcloud iam roles create editor --project $DEVSHELL_PROJECT_ID \ --file role-definition.yaml

ロールが正常に作成された場合、次のレスポンスが返されます。

Created role [editor]. description: Edit access for App Versions etag: BwVs4O4E3e4= includedPermissions: - appengine.versions.create - appengine.versions.delete name: projects/{{{project_0.project_id | Project ID}}}/roles/editor stage: ALPHA title: Role Editor

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 YAML ファイルを使用してカスタムロールを作成する

タスク 5. フラグを使用してカスタムロールを作成する

次に、フラグを使用する方法で新しいカスタムロールを作成します。フラグは YAML ファイルと同様の形式なので、コマンドの構築は確認できます。

  • 次のようにフラグを指定して gcloud コマンドを実行し、新しいロールを作成します。
gcloud iam roles create viewer --project $DEVSHELL_PROJECT_ID \ --title "Role Viewer" --description "Custom role description." \ --permissions compute.instances.get,compute.instances.list --stage ALPHA

出力例:

Created role [viewer]. description: Custom role description. etag: BwVs4PYHqYI= includedPermissions: - compute.instances.get - compute.instances.list name: projects/{{{project_0.project_id | Project ID}}}/roles/viewer stage: ALPHA title: Role Viewer

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 フラグを使用してカスタムロールを作成する

タスク 6. カスタムロールを一覧表示する

  1. プロジェクト レベルまたは組織レベルのカスタムロールを指定して、次の gcloud コマンドを実行してカスタムロールを一覧表示します。
gcloud iam roles list --project $DEVSHELL_PROJECT_ID

出力例:

--- description: Edit access for App Versions etag: BwVxLgrnawQ= name: projects/{{{project_0.project_id | Project ID}}}/roles/editor title: Role Editor --- description: Custom role description. etag: BwVxLg18IQg= name: projects/{{{project_0.project_id | Project ID}}}/roles/viewer title: Role Viewer

削除されたロールを一覧表示するには、--show-deleted フラグを使用することもできます。

  1. 事前定義済みのロールを一覧表示するには、次の gcloud コマンドを実行します。
gcloud iam roles list

既存のカスタムロールを更新する

カスタムロールなどのリソースのメタデータの更新では、一般にリソースの現在の状態の読み取り、ローカルでのデータの更新、変更されたデータの送信と書き込みが行われます。このような処理では、2 つ以上の独立したプロセスが一連の操作を同時に試行する場合に競合が発生することがあります。

たとえば、プロジェクトの 2 人のオーナーが、1 つのロールに対して相反する変更を同時に行うと、一部の変更が失敗する可能性があります。

Cloud IAM では、カスタムロールの etag プロパティを使用してこの問題を解決します。このプロパティは、カスタムロールが最後のリクエスト以降に変更されているかどうかを確認するために使用されます。etag 値を保持している Cloud IAM にリクエストを出すと、Cloud IAM はリクエスト内の etag 値と、カスタムロールに関連付けられている既存の etag 値を比較します。etag 値が一致した場合にのみ変更を書き込みます。

次の 2 通りの方法で新しいカスタムロールを更新するには、gcloud iam roles update コマンドを使用します。

  • 更新されたロール定義を含む YAML ファイル
  • 更新されたロール定義を指定するフラグ

カスタムロールを更新する際には、--organization [ORGANIZATION-ID] フラグまたは --project [PROJECT-ID] フラグを使用して、組織レベルまたはプロジェクト レベルのどちらに適用するかを指定する必要があります。下の各例では、プロジェクト レベルでカスタムロールを作成します。

describe コマンドはロールの定義を返し、その定義にはロールの現在のバージョンを一意に特定する etag 値が含まれます。ロールの同時変更が上書きされないように、更新されたロール定義に etag 値を指定する必要があります。

タスク 7. YAML ファイルを使用してカスタムロールを更新する

  1. 次の gcloud コマンドを実行してロールの最新の定義を取得します。[ROLE_ID]editor に置き換えます。
gcloud iam roles describe [ROLE_ID] --project $DEVSHELL_PROJECT_ID

describe コマンドは次の出力を返します。

description: [ROLE_DESCRIPTION] etag: [ETAG_VALUE] includedPermissions: - [PERMISSION_1] - [PERMISSION_2] name: [ROLE_ID] stage: [LAUNCH_STAGE] title: [ROLE_TITLE]
  1. 出力をコピーして、次の手順で新しい YAML ファイルを作成します。

  2. エディタで new-role-definition.yaml ファイルを作成します。

nano new-role-definition.yaml
  1. 最後のコマンドの出力を貼り付けて、includedPermissions に以下の 2 つの権限を追加します。
- storage.buckets.get - storage.buckets.list

完了すると、YAML ファイルは次のようになります。

description: Edit access for App Versions etag: BwVxIAbRq_I= includedPermissions: - appengine.versions.create - appengine.versions.delete - storage.buckets.get - storage.buckets.list name: projects/{{{project_0.project_id | Project ID}}}/roles/editor stage: ALPHA title: Role Editor
  1. CTRL+XYENTER の順にキーを押して、ファイルを保存して閉じます。

  2. 次に update コマンドを使ってロールを更新します。[ROLE_ID]editor に置き換えて、次の gcloud コマンドを実行します。

gcloud iam roles update [ROLE_ID] --project $DEVSHELL_PROJECT_ID \ --file new-role-definition.yaml

ロールが正常に更新された場合、次のレスポンスが返されます。

description: Edit access for App Versions etag: BwVxIBjfN3M= includedPermissions: - appengine.versions.create - appengine.versions.delete - storage.buckets.get - storage.buckets.list name: projects/{{{project_0.project_id | Project ID}}}/roles/editor stage: ALPHA title: Role Editor

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 YAML ファイルを使用してカスタムロールを更新します

タスク 8. フラグを使用して、カスタムロールを更新する

ロール定義の各部分は、対応するフラグを使用して更新できます。SDK リファレンス ドキュメントから可能なすべてのフラグの一覧については、gcloud iam roles update をご覧ください。

次のフラグを使用して、権限を追加または削除します。

  • --add-permissions: 権限(複数の場合はカンマで区切る)をロールに追加します。
  • --remove-permissions: 権限(複数の場合はカンマで区切る)をロールから削除します。

または、--permissions [PERMISSIONS] フラグを使用して新しい権限を指定することもできます。権限のカンマ区切りのリストを指定すると、既存の権限のリストが置き換えられます。

  • 次のようにフラグを指定して gcloud コマンドを実行し、viewer ロールに権限を追加します。
gcloud iam roles update viewer --project $DEVSHELL_PROJECT_ID \ --add-permissions storage.buckets.get,storage.buckets.list

ロールが正常に更新された場合、次のレスポンスが返されます。

description: Custom role description. etag: BwVxLi4wTvk= includedPermissions: - compute.instances.get - compute.instances.list - storage.buckets.get - storage.buckets.list name: projects/{{{project_0.project_id | Project ID}}}/roles/viewer stage: ALPHA title: Role Viewer

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 フラグを使用して、カスタムロールを更新する

タスク 9. カスタムロールを無効にする

ロールを無効にすると、そのロールに関連するポリシー バインディングはすべて無効になります。つまり、ユーザーにロールを付与しても、そのロールの権限は付与されません。

既存のカスタムロールを無効にする最も簡単な方法は、--stage フラグを使用してロールを DISABLED に設定する方法です。

  • 次の gcloud コマンドを実行して viewer ロールを無効にします。
gcloud iam roles update viewer --project $DEVSHELL_PROJECT_ID \ --stage DISABLED

ロールが正常に更新された場合、次のレスポンスが返されます。

description: Custom role description. etag: BwVxLkIYHrQ= includedPermissions: - compute.instances.get - compute.instances.list - storage.buckets.get - storage.buckets.list name: projects/{{{project_0.project_id | Project ID}}}/roles/viewer stage: DISABLED title: Role Viewer

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 カスタムロールを無効化します

タスク 10. カスタムロールを削除する

  • カスタムロールを削除するには、gcloud iam roles delete コマンドを使用します。削除されたロールは無効になり、新しい IAM ポリシー バインディングの作成に使用できなくなります。
gcloud iam roles delete viewer --project $DEVSHELL_PROJECT_ID

出力例:

deleted: true description: Custom role description. etag: BwVxLkf_epw= includedPermissions: - compute.instances.get - compute.instances.list - storage.buckets.get - storage.buckets.list name: projects/{{{project_0.project_id | Project ID}}}/roles/viewer stage: DISABLED title: Role Viewer

ロールが削除された後、既存のバインディングは残りますが無効になります。7 日以内であれば、ロールの削除を取り消すことができます。7 日間後にロールの完全削除プロセスが開始され、そのプロセスが 30 日間続きます。37 日後に、ロール ID は再び使用可能になります。

注: ロールを段階的に廃止する場合は、role.stage プロパティを非推奨に変更し、deprecation_message を設定して、使用する必要がある代替のロールや詳細情報の入手場所をユーザーに知らせます。

タスク 11. カスタムロールの復元

  • 7 日以内ならば、ロールを復元できます。削除されたロールは無効状態にあります。再び利用できるようにするには、--stage フラグを更新します。
gcloud iam roles undelete viewer --project $DEVSHELL_PROJECT_ID

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 カスタムロールの削除を取り消す

お疲れさまでした

カスタムロールを作成して、管理しました。

クエストを完了する

このセルフペース ラボは、「Security & Identity Fundamentals」クエストの一部です。クエストとは学習パスを構成する一連のラボのことで、完了すると成果が認められて上のようなバッジが贈られます。バッジは公開して、オンライン レジュメやソーシャル メディア アカウントにリンクできます。このラボの修了後、こちらのクエストに登録すれば、すぐにクレジットを受け取ることができます。受講可能なその他のクエストについては、Google Cloud Skill Boost カタログでご確認ください。

次のステップと詳細情報

IAM の詳細については、IAM の記事 Cloud Identity and Access Management をご覧ください。

Google Cloud トレーニングと認定資格

Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。

マニュアルの最終更新日: 2023 年 7 月 13 日

ラボの最終テスト日: 2023 年 7 月 13 日

Copyright 2024 Google LLC All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。