顯示具有 GCP 標籤的文章。 顯示所有文章
顯示具有 GCP 標籤的文章。 顯示所有文章

2021-10-02

GCP 全專案「安全殼層金鑰」設定

GCP 全專案「安全殼層金鑰」設定

GCP 的全專案「安全殼層金鑰」(ssh public key) 設定,位於「Compute Engine」>「中繼資料(metadata)」>「安全殼層金鑰」,點擊「編輯」用以新增或修改,通常將 ~/.ssh/id_rsa.pub 內的資料複製進去即可。該帳號就可以有全專案裡,所有 VM instances 的 sudo 權限。

通常 ssh 用來連線至 VM,所以 ssh public key 設定放在 Compute Engine 的 Metadata 也算是合理的設計。

若要設定特定 VM 的 ssh key,可以到「Compute Engine」>「VM 執行個體」,選擇 VM 後在上方選單點選「編輯」,以進入編輯模式。在「SSH 金鑰」區塊,新增金鑰即可。

GCP 費用估算器

https://cloud.google.com/products/calculator

GCP Cloud SQL 公開 IP 連線

GCP Cloud SQL 公開 IP 連線

在此 Cloud SQL 以 MySQL 8 為例。在建立 SQL 執行個體時,連線設定必須勾選「公開 IP」,建立後會配發一個公開的 IP。 在「已授權網路」設定家用電腦或辦公室電腦對外的 IP,為了安全性通常會設定單 IP 通行 x.x.x.x/32。設定好之後,請記得按「儲存」按鈕儲存。

選定執行個體後,在 Cloud SQL 左側選單的「使用者」會有 MySQL 預設的管理帳號 root。從外部連入的用戶為 root@%,並沒有所有授權,例如變更其他用戶的密碼就沒有;而 root@localhost 才有所有授權。

如果你工作的電腦有 MySQL terminal client,可以使用下式連入:

/Applications/XAMPP/bin/mysql -h x.x.x.x -u root -p

如果工作的電腦有 PHP 的執行環境 (MySQL8 需要 PHP7 以上),可以使用 phpMyAdmin 或 Adminer 工具。

# 在存放 adminer.php 的工作目錄啟動 PHP7 內建的測試 web server php -S localhost:8888

使用 phpMyAdmin 管理資料滿方便的。然而比較建議使用 Adminer,可以在建立某個 DB 後,再建立只能存取該 DB 的用戶。以下是 Adminer 產生的 SQL 語法,也可以透過 MySQL client 去執行。

-- 建立用戶 shinder3 並設定密碼 CREATE USER 'shinder3'@'%' IDENTIFIED BY 'shinder3_password'; -- 建立後密碼不能以 root@% 去變更, 只能登入該帳號變更 -- SET PASSWORD = 'shinder33'; -- 只設定用戶可以存取 test 資料庫 GRANT CREATE ROUTINE, CREATE TEMPORARY TABLES, LOCK TABLES, ALTER, CREATE, CREATE VIEW, DELETE, DROP, INDEX, INSERT, REFERENCES, SELECT, SHOW VIEW, TRIGGER, UPDATE, ALTER ROUTINE, EXECUTE ON `test`.* TO 'shinder3'@'%';

以 Adminer 建立的用戶,也可以在 Cloud SQL 左側選單的「使用者」列表中看到,但權限範圍不同。直接透過 GCP console 的「SQL > 使用者」建立的用戶有管理所有資料庫的權限,透過 Adminer 或 MySQL client 的則只有單一 DB 的管理權限。

2021-06-25

GCP VM執行個體掛載磁碟

GCP VM執行個體掛載磁碟

在建立「VM執行個體」時,可以建立可開機的磁碟,通常體積會落在 10G~50G 之間。

如果要存放大量的資料,會另外再開一般的磁碟(非開機用),而不會把 OS 和資料綁在同一個磁碟裡,以方便管理。

你可以先建立一個空白的磁碟,再掛到VM執行個體上;也可以在編輯VM執行個體時,直接建立一個新的磁碟。 以下是先建立磁碟再掛載的方式。

  1. 先建立VM執行個體(略)。

  2. 建立磁碟 點選「Compute Engine」>「儲存空間」>「磁碟」 點選「建立磁碟」,填入資料,假設名稱為「disk-2」

  3. 編輯VM執行個體

    • 點選「Compute Engine」>「虛擬機器」>「VM執行個體」
    • 點選個體名稱
    • 點選上方「編輯」按鈕
    • 點選「+ 連接現有的磁碟」
    • 選擇「disk-2」
    • 點按下方「儲存」按鈕

以上只設定磁碟個體跟隨的VM執行個體,接著還需要使用命令列掛載。接著使用 ssh 連線至 VM。參考官方說明 建立附加磁碟

# 查看磁碟 ls -al /dev/disk/by-id/ # 下行為查看到的磁碟,對應的是 /dev/sdb # lrwxrwxrwx 1 root root 9 Jun 25 09:52 google-disk-2 -> ../../sdb # 也可以使用 lsblk 查看 lsblk # 將磁碟格式化為 ext4 格式,使用最大的可得空間 sudo mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/sdb # 建立掛載名稱(資料夾) my-disk2 sudo mkdir -p /mnt/disks/my-disk2 # 掛載 sudo mount -o discard,defaults /dev/sdb /mnt/disks/my-disk2 # 變更磁碟讀取權限 sudo chmod a+w /mnt/disks/my-disk2 # 存放文字檔做測試 echo "hi shinder" > /mnt/disks/my-disk2/test.txt

開機自動掛載

# 先備份 fstab 檔案 sudo cp /etc/fstab /etc/fstab.backup # 查看磁碟的識別碼 sudo blkid /dev/sdb # /dev/sdb: UUID="1db51edb-a3a5-4bac-a436-e6ea38012392" TYPE="ext4" # 在 fstab 內增加一行 UUID=1db51edb-a3a5-4bac-a436-e6ea38012392 /mnt/disks/my-disk2 ext4 discard,defaults,nofail 0 2 # 重開機看可不可以正常重掛 sudo reboot now

FB 留言