gcloud cli 使用 impersonate模擬 服務帳號

什么是模擬服務帳號

眾所周知, gcloud 登陸的方式有兩種

  1. 使用個人帳號, 通常是1個郵箱地址
  2. 使用一個service account 通常是1個 json key 文件

所謂模式服務帳號意思就是, 讓操作人員用個人帳號登陸, 但是登陸后所有的操作都是基于另個service account的權限

為什么需要模擬服務帳號

  1. 讓操作人員使用服務帳號所有的權限
  2. 讓操作人員沒有對應的jsonkey file也能使用service account
  3. 讓所有的操作的日志記錄的操作者 為服務帳號

所需要的權限

假如 我的個人帳號是jason1.pan@maplequad.com
要模擬的sa 是terraform@jason-hsbc@gserviceaccount.com

簡單來講就是讓個人帳號具有sa的 roles/iam.serviceAccountTokenCreator 的權限

檢查

gateman@MoreFine-S500: github$ gcloud iam service-accounts get-iam-policy terraform@jason-hsbc.iam.gserviceaccount.com   --format=json
{"etag": "ACAB"
}

可見, 并沒有

方法有兩種

  1. 就是分配該權限給個人帳號
  2. 讓個人帳號擁有gcp project owner權限

這里用的是第一種

gateman@MoreFine-S500: github$ gcloud iam service-accounts add-iam-policy-binding terraform@jason-hsbc.iam.gserviceaccount.com     --member="user:jason1.pan@maplequad.com"     --role="roles/iam.serviceAccountTokenCreator"     --project=jason-hsbc
Updated IAM policy for serviceAccount [terraform@jason-hsbc.iam.gserviceaccount.com].
bindings:
- members:- user:jason1.pan@maplequad.comrole: roles/iam.serviceAccountTokenCreator
etag: BwY-I5F2wxU=
version: 1
gateman@MoreFine-S500: github$ gcloud iam service-accounts get-iam-policy terraform@jason-hsbc.iam.gserviceaccount.com   --format=json
{"bindings": [{"members": ["user:jason1.pan@maplequad.com"],"role": "roles/iam.serviceAccountTokenCreator"}],"etag": "BwY-I5F2wxU=","version": 1
}

如何模擬服務帳號

首先登陸個人 帳號
gcloud auth login
gateman@MoreFine-S500: github$ gcloud config list
[core]
account = jason1.pan@maplequad.com
disable_usage_reporting = False
project = jason-hsbcYour active configuration is: [default]
使用gcloud config set auth/impersonate_service_account 命令模擬
gateman@MoreFine-S500: github$ gcloud config set auth/impersonate_service_account terraform@jason-hsbc.iam.gserviceaccount.com
Updated property [auth/impersonate_service_account].
gateman@MoreFine-S500: github$ gcloud config list
[auth]
impersonate_service_account = terraform@jason-hsbc.iam.gserviceaccount.com
[core]
account = jason1.pan@maplequad.com
disable_usage_reporting = False
project = jason-hsbcYour active configuration is: [default]

測試

gateman@MoreFine-S500: github$ gcloud compute instances list
WARNING: This command is using service account impersonation. All API calls will be executed as [terraform@jason-hsbc.iam.gserviceaccount.com].
WARNING: This command is using service account impersonation. All API calls will be executed as [terraform@jason-hsbc.iam.gserviceaccount.com].
NAME                                         ZONE            MACHINE_TYPE    PREEMPTIBLE  INTERNAL_IP              EXTERNAL_IP    STATUS
instance-windows                             europe-west1-c  c3-standard-4                192.168.4.2                             TERMINATED
gke-my-cluster1-my-node-pool1-5cad8c5c-7bv1  europe-west2-a  n2d-highmem-4                192.168.3.30                            RUNNING
gke-my-cluster1-my-node-pool1-5cad8c5c-zjgf  europe-west2-a  n2d-highmem-4                192.168.3.29                            RUNNING
tf-vpc0-subnet0-gpu-vm0                      europe-west2-a  n1-highmem-8    true         192.168.0.56                            TERMINATED
gke-my-cluster1-my-node-pool1-f7d2eb2b-jf2k  europe-west2-b  n2d-highmem-4                192.168.3.31                            RUNNING
gke-my-cluster1-my-node-pool1-f7d2eb2b-zb06  europe-west2-b  n2d-highmem-4                192.168.3.33                            RUNNING
gke-my-cluster1-my-node-pool1-8902d932-dchn  europe-west2-c  n2d-highmem-4                192.168.3.34                            RUNNING
gke-my-cluster1-my-node-pool1-8902d932-x0kk  europe-west2-c  n2d-highmem-4                192.168.3.32                            RUNNING
instance-1                                   europe-west2-c  e2-standard-2                192.168.0.2                             TERMINATED
instance-2                                   europe-west2-c  e2-standard-4   true         192.168.0.3                             TERMINATED
instance-20241201-042218                     europe-west2-c  n2d-highmem-4                192.168.0.54                            TERMINATED
instance-3-jenkins                           europe-west2-c  n1-standard-4                192.168.0.6                             TERMINATED
k8s-master                                   europe-west2-c  n2d-highmem-2   true         192.168.0.3              34.142.35.168  TERMINATED
k8s-node0                                    europe-west2-c  n2d-highmem-4   true         192.168.0.6                             TERMINATED
k8s-node1                                    europe-west2-c  n2d-highmem-4   true         192.168.0.44                            TERMINATED
k8s-node2                                    europe-west2-c  n2d-highmem-4   true         192.168.0.43                            TERMINATED
k8s-node3                                    europe-west2-c  n2d-highmem-4   true         192.168.0.45                            TERMINATED
tf-vpc0-subnet0-main-server                  europe-west2-c  n2d-standard-4  true         192.168.0.35             34.39.2.90     RUNNING
tf-vpc0-subnet0-mysql0                       europe-west2-c  e2-standard-2   true         192.168.0.42                            RUNNING
tf-vpc0-subnet0-vm0                          europe-west2-c  n2-highmem-4    true         192.168.0.51                            RUNNING
tf-vpc0-subnet0-vm1                          europe-west2-c  e2-small        true         192.168.0.7                             TERMINATED
tf-vpc0-subnet0-vm2                          europe-west2-c  e2-small        true         192.168.0.27                            TERMINATED
tf-vpc0-subnet0-vm20                         europe-west2-c  e2-small        true         192.168.0.33                            TERMINATED
tf-vpc0-subnet0-vm21                         europe-west2-c  e2-small        true         192.168.0.193                           TERMINATED
tf-vpc0-subnet0-vm22                         europe-west2-c  n2-highmem-4    true         192.168.0.192                           TERMINATED
tf-vpc0-subnet0-vm3                          europe-west2-c  e2-small        true         192.168.0.29                            TERMINATED
tf-vpc0-subnet0-vpc1-subnet0-vm0             europe-west2-c  e2-small        true         192.168.0.9,192.168.8.3                 TERMINATED
tf-vpc0-subnet1-vm0                          europe-west2-c  e2-small        true         192.168.1.2                             TERMINATED
tf-vpc0-subnet1-vm1                          europe-west2-c  e2-small        true         192.168.1.6                             TERMINATED
tf-vpc1-subnet0-vm0                          europe-west2-c  e2-small        true         192.168.8.2                             TERMINATED

題外:roles/iam.serviceAccountTokenCreator 和 roles/iam.serviceAccountUser的區別

roles/iam.serviceAccountTokenCreator 用于服務帳號模擬

而roles/iam.serviceAccountUser 用于資源綁定

例如當帳號a 想綁定帳號b到1個gcp 資源(例如vm的綁定帳號) 則a必須具有b的 roles/iam.serviceAccountUser 權限

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/95971.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/95971.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/95971.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

idf--esp32的看門狗menuconfig

1.Interrupt Watchdog Timeout (ms):意思是中斷看門狗,也就是專門監管中斷響應時間的看門狗,如果某個中斷服務程序超過了這個運行時間,就會導致程序重啟。2.紅框是任務看門狗的最大看門時間,超過時間就會警告&#xff…

git在Linux中的使用

git-Linux中的使用一、下載git二、https方式上傳三、ssh秘鑰方式上傳一、下載git 版本信息 [rootrocky ~]# cat /etc/rocky-release Rocky Linux release 9.4 (Blue Onyx) [rootrocky ~]# cat /etc/rocky-release-upstream Derived from Red Hat Enterprise Linux 9.4 [rootro…

HMI(人機界面)

新晉碼農一枚,小編定期整理一些寫的比較好的代碼,作為自己的學習筆記,會試著做一下批注和補充,轉載或者參考他人文獻會標明出處,非商用,如有侵權會刪改!歡迎大家斧正和討論!一、核心…

嵌入式解謎日志—多路I/O復用

多路 I/O復用(Multiplexed I/O):1.定義:系統提供的I/O事件通知機制2.應用:是一種 I/O 編程模型,用于在單線程中同時處理多個(阻塞) I/O 操作,避免因等待某個 I/O 操作完成…

關于嵌入式學習——單片機4

ds18b20溫度傳感器的使用一、傳感器分類:數字溫度傳感器,實現簡單,不需要額外轉換電路,采集過來的就是數字溫度值模擬溫度傳感器->熱敏電阻->AD轉換電路->數字值二、傳感器接口:GPIO接口:&#xf…

Kali搭建sqli-labs靶場

1.輸入apt-get install docker.io即可下載靶場鏡像。 下載好后,我們輸入docker search sqli-labs搜索sqli-labs靶場。2.我們選擇第一個,輸入docker pull acgpiano/sqli-labs,將該靶場裝到本地。此時輸入docker images,發現本地有s…

電腦外接顯示屏字體和圖標過大

當外接顯示屏的分辨率過高時,可以調整顯示器設置來解決字體和圖標過大的問題。具體操作包括在桌面右擊選擇顯示設置,切換到外接顯示器,將分辨率調至推薦的1920x1080,或根據個人偏好進行適當調節,然后保存更改。 原因&a…

Linux 網絡流量監控 Shell 腳本詳解(支持郵件告警)

前言 一、腳本功能 二、實現原理 三、Shell 腳本實現 四、關鍵知識點解析 1. Bash 關聯數組 2. 命令組 { } 與子 Shell ( ) 3. 字符串拼接換行 4. 流量計算邏輯 五、測試方法 六、優化建議 七、總結 前言 在生產環境中,監控服務器的 網絡流量 非常重要…

【牛客刷題-劍指Offer】BM18 二維數組中的查找:一題四解,從暴力到最優

文章目錄 一、題目介紹 1.1 描述 1.2 示例1 1.3 示例2 1.4 給的部分代碼 二、題解 方法一:暴力遍歷 方法二:二分查找(逐行) 方法三:Z字形查找(最優解) 方法四:遞歸分治(拓展思路) 三、總結 心得體會 一、題目介紹 原題鏈接:https://www.nowcoder.com/practice/abc3…

使用pyspark對上百億行的hive表生成稀疏向量

背景:一張上百億行的hive表,只有id和app兩列,其中app的去重量是8w多個(原app有上百萬枚舉值,此處已經用id數量進行過篩選,只留下有一定規模的app),id的去重量大概有八九億&#xff0…

【設計模式】關于學習《重學Java設計模式》的一些成長筆記

【設計模式】關于學習《重學Java設計模式》的一些成長筆記 沒有幾個人是一說就會的,掌握一些技能,不僅要用心,而且還需要從溫故中知新。 為此,好記性不如爛筆頭,我干脆一步一腳印地系統學習一遍設計模式! (關注不迷路哈!!!) 文章目錄 【設計模式】關于學習《重學Jav…

【基礎-判斷】@Entry裝飾的自定義組件將作為頁面的入口。在單個頁面中可以使用多個@Entry裝飾不同自定義組件。

@Entry裝飾的自定義組件將作為頁面的入口。在單個頁面中可以使用多個@Entry裝飾不同自定義組件。 解釋: @Entry 的核心作用與唯一性:@Entry 裝飾器用于明確聲明該組件是一個頁面的入口組件,即整個頁面的“根”和“起點”。當UIAbility實例加載并顯示頁面時,系統需要明確知道…

醫學影像AI應用-實踐:使用MONAI實現肺部CT圖像分割的原理與實踐

?? 博主簡介:CSDN博客專家、CSDN平臺優質創作者,高級開發工程師,數學專業,10年以上C/C++, C#,Java等多種編程語言開發經驗,擁有高級工程師證書;擅長C/C++、C#等開發語言,熟悉Java常用開發技術,能熟練應用常用數據庫SQL server,Oracle,mysql,postgresql等進行開發應用…

如何訓練一個簡單的Transformer模型(附源碼)李宏毅2025大模型-作業4

摘要:一、作業目標:使用只有2層transformer的GPT-2,生成完整寶可夢圖像。二、源碼&解析:使用提供的Transformer模型(GPT-2)進行訓練,FID Score: 96.3425一、作業目標1)目標使用T…

leetcode211.添加與搜索單詞-數據結構設計

與208.前綴樹的設計是一樣的,關鍵點在于word中存在通配符“.",所以針對該特殊情況,在search時針對這里進行全子節點的深度搜索class WordDictionary {TrieNode root;private class TrieNode {char val;// 當前節點的值,冗余了…

項目中的一些比較實用的自定義控件

本文是記錄項目開發中一些相對復雜但都比較實用的控件,這些控件都是基于自定義的方式去實現,如果有需要的朋友,這個可以作為一個參考,同時也做一個自我總結。 (1)子項大小不一致的RecyclerView(…

[iOS] 折疊 cell

目錄 前言 1.原理 2.折疊 cell 的點擊選中 3.折疊 cell 高度的變化 4.實現效果 5.總結 前言 折疊 cell 是在 3GShare 中寫過的一個小控件,這篇博客是一個小小的總結。 1.原理 在這里的核心就是我們可以通過改變按鈕的 tag 值來判斷我們是否應該展開還是回收…

MySQL的組復制(MGR)高可用集群搭建

一、MySQL 組復制(MGR)核心概念 MySQL Group Replication(簡稱 MGR)是 MySQL 官方推出的 高可用(HA) 強一致性 解決方案,基于改進的 Paxos 協議實現,核心能力可概括為 3 點&#xf…

使用Shell腳本實現Linux系統資源監控郵件告警

前言 1. 問題背景與需求 2. Bash 腳本監控資源 3. Bash 腳本判斷閾值 4. 配置 msmtp 發送郵件 4.1 安裝 msmtp 4.2 創建配置文件 /etc/msmtprc 5. 發送郵件 5.1 給別人發郵件 6. 完整示例腳本 7. 測試方法 8. 常見問題解答 9. 總結 前言 在運維過程中&#xff0c…

設計整體 的 序分(三“釋”)、正宗分(雙“門”)和流通分(統一的通行表達式) 之3 “自明性”(騰訊元寶 之2)

Q&AQ11、可能還需要補充 魂軸、體軸 和 中心軸 并行 上升 的內容Q11.1、我剛才說“可能還需要補充 魂軸、體軸 和 中心軸 并行 上升 的內容” 是指的 我們今天前面討論 得出的整體設計 的一個概念整體 的一個雙螺旋上升結構中的三個軸。 您剛才是這樣 理解的嗎?…