このドキュメントでは、オープンソース ツールを使用して Google Cloud プロジェクトへのジャストインタイム特権アクセスを実装する方法について説明します。ジャストインタイム特権アクセスでは、アクセスを必要とする場合にのみ、一部のユーザーにプロジェクトへの一時的なアクセス権を付与できます。
このドキュメントは、Google Cloud リソースへのユーザー アクセスを管理する管理者を対象としています。また、Google Cloud、Identity and Access Management(IAM)、関連するコンセプトについて理解していることを前提としています。
ジャストインタイムの特権アクセス管理の概要
最小権限の原則に従うと、ユーザーには十分なアクセス権のみが付与され、日常的なアクティビティは実施できますが、それ以上の操作は行えなくなります。この原則に従うことで、リスクを軽減できます。ただし、予期しないインシデントに対処する場合など、特権アクションの実施が必要になることがあるため、ユーザーに負担がかかる可能性があります。たとえば、本番環境システムの問題のトラブルシューティングや、センシティブ データを含む問題のトラブルシューティングなどを行う場合です。
この問題に対処する方法の一つは、ジャストインタイムの特権アクセスを提供することです。つまり、必要なときにのみ特権アクセスを付与します。ジャストインタイム特権アクセス管理の主な考え方は、永続アクセスと適格アクセスを区別することです。
- 永続アクセス権は、取り消すまで適用されます。最小権限の原則に従い、永続アクセス権を制限し、それを必要とする少数のユーザーにのみアクセス権を付与することをおすすめします。
- 適格アクセス権はすぐには適用されません。代わりに、プロジェクトへの適格アクセス権が付与されているユーザーは、プロジェクトにアクセスする前に、そのアクセス権を明示的に有効にする必要があります。また、その理由も説明する必要があります。ユーザーのアクセス権が有効になった後、しばらくするとそのアクセス権が自動的に期限切れになります。
ジャストインタイム特権アクセス管理を使用すると、次のことが可能になります。
- 誤ってリソースを変更または削除してしまうリスクを軽減できます。たとえば、ユーザーが必要な場合にのみ特権アクセスを持っていれば、変更すべきでないリソースに意図せず影響を与えるようなスクリプトをユーザーが実行しないようにできます。
- 権限が有効化された理由を示す監査証跡を作成します。
- 監査とレビューを行って過去のアクティビティを分析できます。
ジャストインタイム アクセスを使用して特権アクセスを実装する
ジャストインタイム アクセスは、App Engine または Cloud Run で実行するように設計されたオープンソース アプリケーションであり、Google Cloud リソースへのジャストインタイム特権アクセスを実装できます。このアプリケーションにより、管理者、ユーザー、監査者は次のタスクを実行できます。
管理者は、次の IAM 条件を追加することによって、ユーザーまたはグループにロールを付与し、そのロールを有効にできます。
has({}.jitAccessConstraint)
ユーザーは、ジャストインタイム アクセス アプリケーションを使用して、アクセス可能なプロジェクトやロールを検索できます。
次のジャストインタイム アクセス アプリケーションのスクリーンショットは、ユーザーがプロジェクトで使用できるロールの一覧を示しています。
1 つ以上のロールを有効にし、アクセス権を取得する理由を示すことができます。
ユーザーがロールを有効にすると、ジャストインタイム アクセスにより、プロジェクトへの一時的なアクセス権がユーザーに付与されます。
監査者は、Cloud Logging を使用して、適格なロールがユーザーによっていつ有効にされたかを確認できます。
不正アクセスからアプリケーションを保護するため、ジャストインタイム アクセス アプリケーションにアクセスできるのは、Identity-Aware Proxy(IAP)だけです。管理者は IAP を使用して、どのユーザーがジャストインタイム アクセスを許可するか、またそれらのユーザーがアクセスするために満たす必要がある追加の条件を制御できます。
始める前に
ジャストインタイム アクセス アプリケーションをデプロイする前に、リソース階層のどの部分に対してジャストインタイム特権アクセスを管理するかを決定する必要があります。次のリソースへのアクセス権を管理できます。
- 単一のプロジェクト
- 複数のプロジェクトを含むフォルダ
- 組織のすべてのプロジェクト
デプロイを完了するには、次のものが必要です。
- Cloud Identity への特権管理者権限、または使用している Google Cloud 組織に対応する Google Workspace アカウント。
- ジャストインタイム アクセスを使用して管理するプロジェクト、フォルダ、または組織の IAM ポリシーを変更する権限。
- アクセスのテスト用に用意した 2 番目の Cloud Identity または Google Workspace ユーザー。
ジャストインタイム アクセス アプリケーションをデプロイする Google Cloud プロジェクトも必要です。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
ジャストインタイム アクセスをデプロイする
このセクションでは、ジャストインタイム アクセス アプリケーションを App Engine または Cloud Run にデプロイする方法について説明します。
ジャストインタイム アクセス アプリケーションを Cloud Run にデプロイするには、アプリケーションを App Engine にデプロイするよりも複雑な構成が必要です。したがって、App Engine をサポートしていないリージョンにデプロイする場合、または他の理由で App Engine を使用できない場合を除き、App Engine を使用することをおすすめします。
ジャストインタイム アクセスのコードは GitHub リポジトリにあります。
このセクションは、読者が管理者であることを前提としています。
Google Cloud プロジェクトを構成する
Google Cloud コンソールでプロジェクトに切り替えて、必要な API を有効にします。
App Engine
Enable the Cloud Asset Inventory, Resource Manager, Identity-Aware Proxy, Container Registry, Cloud Build, Identity and Access Management, and Directory APIs.
Cloud Run
Enable the Cloud Asset Inventory, Resource Manager, Identity-Aware Proxy, Container Registry, Cloud Run, Compute Engine, Identity and Access Management, and Directory APIs.
Cloud Shell を開きます。
プロジェクト ID を格納する環境変数を設定します。
gcloud config set project PROJECT_ID
PROJECT_ID は、プロジェクトの ID に置き換えます。
ジャストインタイム アクセス アプリケーションのサービス アカウントを作成します。
SERVICE_ACCOUNT=$(gcloud iam service-accounts create jitaccess --display-name "Just-In-Time Access" --format "value(email)")
サービス アカウント トークン作成者のロール(
roles/iam.serviceAccountTokenCreator
)を付与して、アプリケーションがそのサービス アカウントを使用してトークンを作成できるようにします。gcloud iam service-accounts add-iam-policy-binding $SERVICE_ACCOUNT \ --member "serviceAccount:$SERVICE_ACCOUNT" \ --role "roles/iam.serviceAccountTokenCreator"
アプリケーションは、トークンを作成する権限を使用して Directory API にアクセスし、必要に応じて複数の関係者による承認ワークフローを処理します。
ジャストインタイム アクセス アプリケーションに IAM バインディングの管理権限を付与する
ここで、アプリケーションのサービス アカウントにプロジェクト IAM 管理者のロールを付与します。このロールを使用すると、ジャストインタイム アクセスを許可する必要がある場合に、ジャストインタイム アクセス アプリケーションが一時的な IAM バインディングを作成できます。
プロジェクト IAM 管理者のロールは権限が高いため、アプリケーションのサービス アカウントとそれを含むプロジェクトへのアクセスを制限する必要があります。
次のガイドラインに従ってください。
- プロジェクトにアクセスできるユーザーの数を制限し、ユーザーにオーナーまたは編集者のロールを付与しないでください。
- サービス アカウントの権限を借用できるユーザーの数を制限します。この借用が可能なユーザーには、サービス アカウント ユーザーのロールまたはサービス アカウント トークン作成者のロールを持つユーザーが含まれます。
サービス アカウントにプロジェクト IAM 管理者のロールを付与するには、次の手順を行います。
ジャストインタイムの特権アクセスを管理するリソース階層の一部に、プロジェクト IAM 管理者ロール(
roles/resourcemanager.projectIamAdmin
)と Cloud Asset 閲覧者ロール(roles/cloudasset.viewer
)を付与します。プロジェクト
SCOPE_ID=RESOURCE_PROJECT_ID SCOPE_TYPE=projects gcloud projects add-iam-policy-binding $SCOPE_ID \ --member "serviceAccount:$SERVICE_ACCOUNT" \ --role "roles/resourcemanager.projectIamAdmin" \ --condition None gcloud projects add-iam-policy-binding $SCOPE_ID \ --member "serviceAccount:$SERVICE_ACCOUNT" \ --role "roles/cloudasset.viewer" \ --condition None
RESOURCE_PROJECT_ID は、アクセスを管理する Google Cloud プロジェクトの ID に置き換えます。このプロジェクトは、ジャストインタイム アクセスをデプロイするプロジェクトとは異なるものです。
フォルダ
SCOPE_ID=RESOURCE_FOLDER_ID SCOPE_TYPE=folders gcloud resource-manager folders add-iam-policy-binding $SCOPE_ID \ --member "serviceAccount:$SERVICE_ACCOUNT" \ --role "roles/resourcemanager.projectIamAdmin" \ --condition None gcloud resource-manager folders add-iam-policy-binding $SCOPE_ID \ --member "serviceAccount:$SERVICE_ACCOUNT" \ --role "roles/cloudasset.viewer" \ --condition None
RESOURCE_FOLDER_ID は、アクセスを管理するプロジェクトを含むフォルダの ID に置き換えます。
組織
SCOPE_ID=ORGANIZATION_ID SCOPE_TYPE=organizations gcloud organizations add-iam-policy-binding $SCOPE_ID \ --member "serviceAccount:$SERVICE_ACCOUNT" \ --role "roles/resourcemanager.projectIamAdmin" \ --condition None gcloud organizations add-iam-policy-binding $SCOPE_ID \ --member "serviceAccount:$SERVICE_ACCOUNT" \ --role "roles/cloudasset.viewer" \ --condition None
ORGANIZATION_ID は組織の ID に置き換えます。
アプリケーションがグループ メンバーシップを解決するためのアクセス権を付与する
ジャストインタイム アクセス アプリケーションでは、特定のユーザーまたはグループ全体に、適格アクセス権を付与できます。グループ メンバーシップを評価するには、アプリケーションが Cloud Identity または Google Workspace アカウントからグループ メンバーシップ情報を読み取ることができる必要があります。
アプリケーションのサービス アカウントにグループ メンバーシップの読み取り権限を付与するには、次の操作を行います。
Google 管理コンソールを開き、特権管理者ユーザーとしてログインします。
[アカウント] > [管理者ロール] に移動します。
[グループ リーダー] > [管理者] をクリックします。
[サービス アカウントへの割り当て] をクリックします。
次のメールアドレスを入力します。
jitaccess@PROJECT_ID.iam.gserviceaccount.com
PROJECT_ID は、Google Cloud プロジェクトの ID に置き換えます。
[追加] をクリックします。
[ロールを割り当て] をクリックします。
Cloud Identity アカウントまたは Google Workspace アカウントのお客様 ID を検索する
Directory API を使用してグループ メンバーを評価するには、ジャストインタイム アクセス アプリケーションに Cloud Identity アカウントまたは Google Workspace アカウントのお客様 ID が必要です。この ID を検索する手順は次のとおりです。
Google 管理コンソールで、[アカウント] > [アカウント設定] に移動します。
アカウントのお客様 ID をコピーします。お客様 ID は
C
で始まります。お客様 ID は後の手順で必要になります。
管理コンソールを閉じます。
アプリケーションをデプロイする
これで、ジャストインタイム アクセス アプリケーションを App Engine または Cloud Run にデプロイする準備が整いました。
App Engine
ジャストインタイム アクセス アプリケーションを App Engine にデプロイするには、次の操作を行います。
Cloud Shell で、Cloud Identity アカウントまたは Google Workspace アカウントのお客様 ID を格納する環境変数を設定します。
ACCOUNT_CUSTOMER_ID=CUSTOMER_ID
CUSTOMER_ID は、以前に検索したお客様 ID に置き換えます。
App Engine アプリケーションを作成します。
gcloud app create --region LOCATION
LOCATION は、サポートされている App Engine のロケーションに置き換えます。
App Engine のデフォルトのサービス アカウントに Artifact Registry の Create-on-Push ライター(
roles/artifactregistry.createOnPushWriter
)ロールとストレージ管理者(roles/storage.admin
)ロールを付与して、App Engine が Artifact Registry を使用できるようにします。PROJECT_ID=$(gcloud config get-value core/project) gcloud projects add-iam-policy-binding $PROJECT_ID \ --member "serviceAccount:$PROJECT_ID@appspot.gserviceaccount.com" \ --role "roles/artifactregistry.createOnPushWriter" \ --condition None gcloud projects add-iam-policy-binding $PROJECT_ID\ --member "serviceAccount:$PROJECT_ID@appspot.gserviceaccount.com" \ --role "roles/storage.admin" \ --condition None
GitHub リポジトリのクローンを作成し、
latest
ブランチに切り替えます。git clone https://github.com/GoogleCloudPlatform/jit-groups.git cd jit-access/sources git checkout latest
ジャストインタイム アクセス アプリケーションの構成ファイルを作成します。
cat << EOF > app.yaml runtime: java17 instance_class: F2 service_account: $SERVICE_ACCOUNT env_variables: RESOURCE_SCOPE: $SCOPE_TYPE/$SCOPE_ID RESOURCE_CATALOG: AssetInventory RESOURCE_CUSTOMER_ID: $ACCOUNT_CUSTOMER_ID ACTIVATION_TIMEOUT: 60 JUSTIFICATION_HINT: "Bug or case number" JUSTIFICATION_PATTERN: ".*" EOF
この構成ファイルで、変数の値をカスタマイズできます。設定のリストについては、関連する GitHub リポジトリの [構成オプション] ページをご覧ください。
アプリケーションをデプロイします。
gcloud app deploy --appyaml app.yaml
出力の
target url
をメモしておきます。これは、ジャストインタイム アクセス アプリケーションの公開 URL です。エラー メッセージ
NOT_FOUND: Unable to retrieve P4SA
が表示された場合は、コマンドを再試行してください。
Cloud Run
ジャストインタイム アクセス アプリケーションを Cloud Run にデプロイするには、次の操作を行います。
Cloud Shell で、Cloud Identity アカウントまたは Google Workspace アカウントのお客様 ID を格納する環境変数を設定します。
ACCOUNT_CUSTOMER_ID=CUSTOMER_ID
CUSTOMER_ID は、以前に検索したお客様 ID に置き換えます。
デプロイ先のリージョンを選択します。
gcloud config set run/region REGION
REGION は、Cloud Run をサポートするリージョンに置き換えます。
バックエンド サービスを作成します。
gcloud compute backend-services create jitaccess-backend \ --load-balancing-scheme=EXTERNAL \ --global
このバックエンド サービスは、後でロードバランサと IAP を構成するために使用します。
GitHub リポジトリのクローンを作成し、
latest
ブランチに切り替えます。git clone https://github.com/GoogleCloudPlatform/jit-groups.git cd jit-access/sources git checkout latest
アプリケーションをビルドし、コンテナ イメージを Container Registry に push します。
PROJECT_ID=$(gcloud config get-value core/project) docker build -t gcr.io/$PROJECT_ID/jitaccess:latest . docker push gcr.io/$PROJECT_ID/jitaccess:latest
ジャストインタイム アクセス アプリケーションの構成ファイルを作成します。
PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format 'value(projectNumber)') REGION=$(gcloud config get-value run/region) IAP_BACKEND_SERVICE_ID=$(gcloud compute backend-services describe jitaccess-backend --global --format 'value(id)') cat << EOF > app.yaml apiVersion: serving.knative.dev/v1 kind: Service metadata: name: jitaccess namespace: $PROJECT_NUMBER labels: cloud.googleapis.com/location: $REGION annotations: run.googleapis.com/ingress: internal-and-cloud-load-balancing spec: template: spec: serviceAccountName: $SERVICE_ACCOUNT containers: - image: gcr.io/$PROJECT_ID/jitaccess:latest env: - name: RESOURCE_SCOPE value: "$SCOPE_TYPE/$SCOPE_ID" - name: RESOURCE_CATALOG value: "AssetInventory" - name: RESOURCE_CUSTOMER_ID value: "$ACCOUNT_CUSTOMER_ID" - name: ACTIVATION_TIMEOUT value: "60" - name: JUSTIFICATION_HINT value: "Bug or case number" - name: JUSTIFICATION_PATTERN value: ".*" - name: IAP_BACKEND_SERVICE_ID value: "$IAP_BACKEND_SERVICE_ID" EOF
この構成ファイルで、変数の値をカスタマイズできます。設定のリストについては、関連する GitHub リポジトリの [構成オプション] ページをご覧ください。
アプリケーションをデプロイします。
gcloud run services replace app.yaml
ロードバランサを構成する
ジャストインタイム アクセス アプリケーションのロードバランサを構成します。
App Engine
App Engine はロードバランサを自動的に構成します。
Cloud Run
Cloud Run サービスの HTTPS ロードバランサを構成します。
ロードバランサに静的外部 IP アドレスを予約します。
gcloud compute addresses create jitaccess-ip --global
ロードバランサ用のマネージド SSL 証明書を作成します。
gcloud compute ssl-certificates create jitaccess \ --domains PUBLIC_FQDN \ --global
ここで、
PUBLIC_FQDN
は、使用するパブリック完全修飾ドメイン名(FQDN)です(例:jitaccess.example.com
)。ロードバランサの IP アドレスを調べます。
gcloud compute addresses describe jitaccess-ip \ --global \ --format=value\(address\)
パブリック DNS ゾーンに、ロードバランサの IP アドレスを指す DNS
A
レコードを作成します。DNS レコードの完全修飾名は、SSL 証明書に使用した名前と一致する必要があります。Cloud Run サービスにサーバーレス ネットワーク エンドポイント グループを作成し、バックエンド サービスに接続します。
gcloud compute network-endpoint-groups create jitaccess \ --region $(gcloud config get-value run/region) \ --network-endpoint-type=serverless \ --cloud-run-service jitaccess gcloud compute backend-services add-backend jitaccess-backend \ --global \ --network-endpoint-group jitaccess \ --network-endpoint-group-region $(gcloud config get-value run/region)
ロードバランサ フロントエンドを作成します。このフロントエンドは、外部 IP アドレスを使用し、バックエンド サービスにトラフィックを転送します。
gcloud compute url-maps create jitaccess \ --default-service jitaccess-backend gcloud compute target-https-proxies create jitaccess-proxy \ --ssl-certificates jitaccess \ --url-map jitaccess gcloud compute forwarding-rules create jitaccess-https \ --load-balancing-scheme EXTERNAL \ --address jitaccess-ip \ --target-https-proxy jitaccess-proxy \ --global \ --ports=443
Identity-Aware Proxy の構成
ジャストインタイム アクセス アプリケーションの IAP を構成します。
Cloud Shell で、OAuth 同意画面を構成します。
gcloud iap oauth-brands create \ --application_title "Just-In-Time Access" \ --support_email=$(gcloud config get core/account)
Google Cloud コンソールで、[セキュリティ] > [Identity-Aware Proxy] に移動します。
[IAP] を [有効] に設定します。
ジャストインタイム アクセス アプリケーションへのアクセスを許可するユーザーを定義する必要があります。個々のユーザー、グループ、またはドメイン全体にアクセス権を付与できます。
Google Cloud コンソールで、[IAM と管理] > [IAM] に移動します。
[アクセス権を付与] をクリックして、次の値を設定します。
- プリンシパル リストで、ユーザー、グループ、またはドメインを選択します。
- ロールリストで、[IAP で保護されたウェブアプリ ユーザー] を選択します。
IAP で保護されたウェブアプリ ユーザーのロールにより、ユーザーはジャストインタイム アクセス アプリケーションを開くことができますが、このロールではまだ追加のリソースへのアクセスは提供されません。
[保存] をクリックします。
ロール バインディングが有効になるまで数分かかることがあります。
App Engine
これで IAP の構成が完了しました。
Cloud Run
IAP の構成を完了するには、IAP が使用するサービス エージェントに Cloud Run 起動元ロール(roles/run.invoker
)を付与します。
PROJECT_NUMBER=$(gcloud projects list \ --filter $(gcloud config get-value project) \ --format "value(PROJECT_NUMBER)") gcloud projects add-iam-policy-binding $(gcloud config get-value core/project) \ --member "serviceAccount:service-$PROJECT_NUMBER@gcp-sa-iap.iam.gserviceaccount.com" \ --role "roles/run.invoker"
ジャストインタイム アクセスをテストする
これで、対象のアクセス権を付与するプロセスと、ジャストインタイム アクセス アプリケーションを使用して対象のアクセスを有効にするプロセスをテストできるようになりました。
適格アクセス権を付与する
まず、2 番目の Cloud Identity または Google Workspace ユーザーに適格アクセス権を付与します。
- Google Cloud コンソールで、プロジェクト リストを使用して、ジャストインタイム アクセス アプリケーションで管理されているリソース階層の一部であるプロジェクトを選択します。
- [IAM] ページで、[アクセス権を付与] をクリックします。
- 2 番目の Cloud Identity または Google Workspace ユーザーのメールアドレスを入力し、[プロジェクト] > [参照者] などのロールを選択します。
- [条件を追加] をクリックします。
- 「
Eligible for JIT access
」などのタイトルを入力します。 [条件エディタ] を選択して、次の CEL 式を入力します。
has({}.jitAccessConstraint)
変更を保存します。
アクセス権を有効にする
ユーザーを切り替えて、リソースに対する一時的なアクセス権をリクエストします。
- ブラウザのシークレット ウィンドウを開き、先ほどメモしたジャストインタイム アクセス アプリケーションの URL に移動します。
- 適格アクセス権が付与されたユーザーとしてログインします。
- ジャストインタイム アクセス アプリケーションで、アクセス権を有効にするロールとリソースを選択します。
理由(例:
testing
)を入力し、[アクセス権をリクエスト] をクリックします。次のページで、アクセス権が一時的に有効になっていることを確認します。
ログを分析する
管理者権限を持つユーザーに戻ってログを確認します。
Google Cloud コンソールで、[ロギング] > [ログ エクスプローラ] に移動します。
[クエリを表示] を [有効] に設定します。
次のクエリを入力します。
labels.event="api.activateRole"
[クエリを実行] をクリックします。
出力は次のようになります。
{ "textPayload": "User EMAIL activated role 'ROLE' on '//cloudresourcemanager.googleapis.com/projects/PROJECT_ID' for themselves", "severity": "INFO", "labels": { "resource": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID", "event": "api.activateRole", "role": "ROLE", "clone_id": "00c6...", "user": "EMAIL", "justification": "testing", ... }, ... }
有効にしたロールごとにログレコードが作成されていることに注目してください。ログレコードには、カスタム フィルタの作成に使用できる一連のラベルが含まれています。
ジャストインタイム アクセスのアップグレード
このセクションでは、既存のジャストインタイム アクセスのデプロイをアップグレードして、アプリケーションの新しいバージョンまたは別の構成を使用する方法について説明します。
このセクションは、読者が管理者であることを前提としています。
Google Cloud コンソールでプロジェクトに切り替え、Cloud Shell を開きます。
プロジェクト ID を格納する環境変数を設定します。
gcloud config set project PROJECT_ID
PROJECT_ID は、プロジェクトの ID に置き換えます。
GitHub リポジトリのクローンを作成し、
latest
ブランチに切り替えます。git clone https://github.com/GoogleCloudPlatform/jit-groups.git cd jit-access/sources git checkout latest
先ほどアプリケーションのデプロイに使用した構成ファイルをダウンロードし、ファイル
app.yaml
に保存します。App Engine
APPENGINE_VERSION=$(gcloud app versions list --service default --hide-no-traffic --format "value(version.id)") APPENGINE_APPYAML_URL=$(gcloud app versions describe $APPENGINE_VERSION --service default --format "value(deployment.files.'app.yaml'.sourceUrl)") curl -H "Authorization: Bearer $(gcloud auth print-access-token)" $APPENGINE_APPYAML_URL -o app.yaml cat app.yaml
ファイル
app.yaml
のダウンロードが失敗した場合は、Google Cloud コンソールで現在の構成をダウンロードできます。Cloud Run
gcloud config set run/region REGION gcloud run services describe jitaccess --format yaml > app.yaml
REGION
は、既存の Cloud Run デプロイを含むリージョンに置き換えます。構成を変更する場合は、
app.yaml
ファイルを編集します。設定のリストについては、関連する GitHub リポジトリの [構成オプション] ページをご覧ください。アプリケーションをデプロイします。
App Engine
sed -i 's/java11/java17/g' app.yaml gcloud app deploy --appyaml app.yaml
Cloud Run
PROJECT_ID=$(gcloud config get-value core/project) docker build -t gcr.io/$PROJECT_ID/jitaccess:latest . docker push gcr.io/$PROJECT_ID/jitaccess:latest IMAGE=$(docker inspect --format='{{index .RepoDigests 0}}' gcr.io/$PROJECT_ID/jitaccess) sed -i "s|image:.*|image: $IMAGE|g" app.yaml gcloud run services replace app.yaml
次のステップ
- マルチパーティ承認を構成する。
- コンテキストアウェア アクセスを使用してジャストインタイム アクセスへのアクセスを保護する方法を確認する。
- IAM 条件についての詳細を確認する。
- ジャストインタイム アクセス アプリケーションのカスタム ドメインを構成する。
- Cloud Architecture Center で、リファレンス アーキテクチャ、図、ベスト プラクティスを確認する。