跳轉至

OCI CLI

OCI CLI (oracle-cloud Infrastructure Command Line Interface) 是管理 Oracle Cloud 資源的命令列工具。在 oci-email-delivery-設定 中,OCI CLI 特別常用於自動新增 Approved Senders,無需每次手動登入 OCI Console。

安裝

在 Oracle Linux VPS 上安裝 OCI CLI,可使用官方安裝腳本:

bash -c "$(curl -L https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh)"

安裝完成後確認版本:

oci --version

這與 Oracle Linux 9 安裝 oracle-linux-9-安裝-codex-cli 的環境相容,適合用於自架 n8ndocker 工作流程。

設定認證

執行 oci setup config 進行初始設定,需要提供:

  • User OCID
  • Tenancy OCID
  • Region

若未有 API Key,可透過 openssl 產生:

mkdir ~/.oci
openssl genrsa -out ~/.oci/oci_api_key.pem 2048
openssl rsa -pubout -in ~/.oci/oci_api_key.pem -out ~/.oci/oci_api_key_public.pem
cat ~/.oci/oci_api_key_public.pem

然後到 OCI Console 的 Identity → Users → 你的 User → API Keys → Add API Key,貼上 Public Key。

需要確保 IAM Policy 授予權限,例如:

Allow group Administrators to manage email-family in tenancy

或最小權限:

Allow user <username> to manage email-sender in tenancy

常用指令:管理 Approved Senders

列出目前 Approved Senders:

oci email sender list --compartment-id <COMPARTMENT_OCID>

新增 Approved Sender:

oci email sender create --compartment-id <COMPARTMENT_OCID> --email-address [email protected]

可以寫成腳本快速新增:

#!/bin/bash
COMPARTMENT_ID="你的 compartment OCID"
EMAIL=$1
oci email sender create --compartment-id $COMPARTMENT_ID --email-address $EMAIL

使用方式:./add_sender.sh [email protected]

與 Infisical 整合

建議不要將 OCI API Key 明文存放在 VPS 的 ~/.oci,而是交由 infisical 管理。架構如下:

Infisical → n8n / OCI CLI → OCI Email Delivery API

在 Infisical 中建立 secrets,例如:

  • OCI_TENANCY_OCID
  • OCI_USER_OCID
  • OCI_FINGERPRINT
  • OCI_REGION
  • OCI_PRIVATE_KEY

n8n 可透過 Infisical Docker Sidecar 或直接呼叫 Infisical API 取得 secrets,再執行 OCI CLI 指令。亦可建立臨時 config 使用:

mkdir -p /tmp/.oci
cat > /tmp/.oci/config <<EOF
[DEFAULT]
user=${OCI_USER_OCID}
fingerprint=${OCI_FINGERPRINT}
tenancy=${OCI_TENANCY_OCID}
region=${OCI_REGION}
key_file=/tmp/.oci/key.pem
EOF
echo "$OCI_PRIVATE_KEY" > /tmp/.oci/key.pem
chmod 600 /tmp/.oci/key.pem
export OCI_CLI_CONFIG_FILE=/tmp/.oci/config
oci email sender create --compartment-id $COMPARTMENT_OCID --email-address $1

完成後清理暫存檔案。

注意事項

oci-email-delivery 僅提供發信,沒有 mailbox 或 IMAP。若需收信,可搭配 cloudflare-email-routing 轉寄至 Gmail,或使用 Microsoft 365 等 mailbox 服務。

使用 OCI CLI 自動化時,建議建立專用 IAM User(例如 n8n-email-manager),僅授予管理 email-sender 的權限,以降低資安風險。

延伸閱讀

Sources

See Also