บทความนี้อธิบายวิธีนำ API Signing Public Key ที่ได้จากคำสั่ง oci setup config ไป Upload เข้าสู่ Oracle Cloud Infrastructure หรือ OCI ผ่านหน้า Web Console

ขั้นตอนนี้จำเป็นสำหรับการใช้งาน OCI CLI จากเครื่อง client เช่น Windows, macOS หรือ Linux เพื่อให้ CLI สามารถ authenticate กับ OCI ได้


API Signing Key คืออะไร

API Signing Key คือ key pair ที่ใช้สำหรับยืนยันตัวตนระหว่าง เครื่อง client กับ OCI API โดยแบ่งออกเป็น 2 ส่วน:

  • Private Key เก็บไว้ที่เครื่อง client ห้ามส่งให้ผู้อื่น
  • Public Key ต้องนำไป upload เข้าหน้า OCI Console ของผู้ใช้

เมื่อใช้ oci setup config ระบบจะช่วยสร้าง key pair และไฟล์ config สำหรับใช้งานกับ OCI CLI

สิ่งที่ต้องเตรียมก่อนเริ่ม

  • บัญชีผู้ใช้ OCI ที่สามารถ login เข้า OCI Console ได้
  • ติดตั้ง OCI CLI บนเครื่อง client แล้ว
  • รันคำสั่ง oci setup config แล้ว
  • มีไฟล์ Public Key ที่สร้างจาก OCI CLI

1. ตรวจสอบไฟล์ Public Key ที่ได้จาก oci setup config

หลังจากรันคำสั่ง:

oci setup config

โดยทั่วไป OCI CLI จะสร้างไฟล์ key ไว้ที่โฟลเดอร์ .oci ภายใต้ user profile ของเครื่อง client

บน Windows path มักจะเป็น:

C:\Users\<your-user>\.oci\oci_api_key_public.pem

และ private key จะอยู่ที่:

C:\Users\<your-user>\.oci\oci_api_key.pem

ไฟล์ที่ต้อง upload เข้า OCI Console คือไฟล์:

oci_api_key_public.pem
ข้อควรระวัง: ห้าม upload หรือแชร์ไฟล์ oci_api_key.pem เพราะเป็น private key ให้ upload เฉพาะไฟล์ oci_api_key_public.pem เท่านั้น

2. เปิดไฟล์ Public Key เพื่อตรวจสอบ

สามารถเปิดไฟล์ public key ด้วย Notepad หรือใช้ PowerShell:

Get-Content "$HOME\.oci\oci_api_key_public.pem"

ตัวอย่างเนื้อหา public key จะมีลักษณะประมาณนี้:

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQE...
-----END PUBLIC KEY-----

ให้ตรวจสอบว่าไฟล์ขึ้นต้นด้วย -----BEGIN PUBLIC KEY----- และลงท้ายด้วย -----END PUBLIC KEY-----

3. Login เข้า OCI Console

เปิด browser แล้ว login เข้า OCI Console ด้วยบัญชีผู้ใช้ที่ต้องการใช้งานกับ OCI CLI

เมื่อ login สำเร็จ ให้คลิกที่ไอคอน Profile หรือรูปผู้ใช้บริเวณมุมขวาบนของหน้าจอ

4. เข้าเมนู User Settings

จากเมนู Profile ให้เลือก:

My Profile

หรือในบางหน้าจออาจแสดงเป็น:

User Settings
ตัวอย่างเมนู Profile และ User Settings ใน OCI Console
ตัวอย่างการเข้าเมนู Profile เพื่อไปยัง User Settings ใน OCI Console

หน้านี้เป็นหน้าสำหรับจัดการข้อมูลของผู้ใช้ เช่น API Keys, Auth Tokens, Customer Secret Keys และ credential อื่น ๆ

5. เปิดเมนู API Keys

ในหน้า User Settings ให้ดูเมนูด้านซ้าย แล้วเลือก:

API Keys

หน้านี้จะแสดงรายการ API Signing Keys ที่ผูกกับผู้ใช้ปัจจุบัน

6. เพิ่ม API Key ใหม่

คลิกปุ่ม:

Add API Key

จากนั้นเลือกวิธีเพิ่ม key เป็น:

Upload Public Key File

แล้วเลือกไฟล์ public key จากเครื่อง client:

C:\Users\<your-user>\.oci\oci_api_key_public.pem

เมื่อเลือกไฟล์แล้ว ให้กด:

Add

หรือ Save ตามที่หน้า Console แสดง

7. ตรวจสอบ Fingerprint หลัง Upload

หลังจาก upload สำเร็จ OCI Console จะแสดงค่า Fingerprint ของ API Key ที่เพิ่มเข้ามา

ตัวอย่าง Fingerprint:

12:34:56:78:90:ab:cd:ef:12:34:56:78:90:ab:cd:ef

ให้นำค่า Fingerprint นี้ไปตรวจสอบกับไฟล์ config ของ OCI CLI

บน Windows ไฟล์ config มักจะอยู่ที่:

C:\Users\<your-user>\.oci\config

ตัวอย่าง config:

[DEFAULT]
user=ocid1.user.oc1..aaaa...
fingerprint=12:34:56:78:90:ab:cd:ef:12:34:56:78:90:ab:cd:ef
tenancy=ocid1.tenancy.oc1..aaaa...
region=ap-singapore-1
key_file=C:\Users\<your-user>\.oci\oci_api_key.pem

ค่า fingerprint ในไฟล์ config ต้องตรงกับ Fingerprint ที่แสดงในหน้า OCI Console

8. ทดสอบ OCI CLI หลัง Upload Public Key

เปิด PowerShell แล้วรันคำสั่งทดสอบ:

oci iam region list

หาก config และ key ถูกต้อง จะเห็นรายการ region ของ OCI

หรือทดสอบดูข้อมูล user ปัจจุบัน:

oci iam user get --user-id <user_ocid>

หากใช้งานกับ OKE ต่อ สามารถทดสอบเรียก cluster ได้ เช่น:

oci ce cluster get `
  --cluster-id <cluster_ocid> `
  --region ap-singapore-1

9. ปัญหาที่พบบ่อย

ปัญหา: NotAuthenticated

ตัวอย่าง error:

ServiceError:
{
  "code": "NotAuthenticated",
  "message": "The required information to complete authentication was not provided or was incorrect."
}

สาเหตุที่เป็นไปได้:

  • ยังไม่ได้ upload public key เข้า OCI Console
  • Upload public key ผิด user
  • ค่า fingerprint ในไฟล์ config ไม่ตรงกับ key ที่ upload
  • ไฟล์ private key path ใน key_file ไม่ถูกต้อง
  • Private key ไม่ตรงกับ public key ที่ upload

ปัญหา: Permission Denied หรือ Authorization failed

หาก authenticate ผ่านแล้ว แต่ไม่มีสิทธิ์เรียก resource บางอย่าง อาจเกิดจาก IAM Policy ยังไม่อนุญาต

ตัวอย่าง:

Authorization failed or requested resource not found.

กรณีนี้ต้องให้ผู้ดูแลระบบตรวจสอบ IAM Policy ของ user หรือ group ที่ user อยู่

ปัญหา: ใช้ key ผิดไฟล์

ไฟล์ public key และ private key มีชื่อคล้ายกัน ควรตรวจสอบให้แน่ใจว่า:

  • ไฟล์ที่ upload คือ oci_api_key_public.pem
  • ไฟล์ที่ระบุใน key_file คือ oci_api_key.pem
หมายเหตุ: Public key ใช้สำหรับ upload เข้า OCI Console ส่วน private key ใช้สำหรับ sign request จากเครื่อง client และต้องเก็บไว้อย่างปลอดภัย

คำสั่งสรุปสำหรับตรวจสอบบน Windows

ดู public key:

Get-Content "$HOME\.oci\oci_api_key_public.pem"

ดู OCI CLI config:

Get-Content "$HOME\.oci\config"

ทดสอบ OCI CLI:

oci iam region list

ทดสอบเรียก OKE cluster:

oci ce cluster get `
  --cluster-id <cluster_ocid> `
  --region ap-singapore-1

สรุป

การ upload API Signing Public Key เข้า OCI Console เป็นขั้นตอนสำคัญหลังจากรัน oci setup config เพื่อให้ OCI CLI สามารถ authenticate กับ OCI API ได้

ผู้ใช้งานต้อง upload เฉพาะไฟล์ oci_api_key_public.pem เข้าไปที่เมนู My Profile → API Keys → Add API Key และตรวจสอบให้แน่ใจว่า Fingerprint ใน OCI Console ตรงกับค่า fingerprint ในไฟล์ ~/.oci/config

หลังจากตั้งค่าถูกต้องแล้ว สามารถใช้ OCI CLI เพื่อจัดการ resource บน OCI เช่น OKE Cluster, Compute, Networking และบริการอื่น ๆ ได้จากเครื่อง client