All Products
Search
Document Center

Elastic Compute Service:Lindungi akun Alibaba Cloud dan cegah kebocoran kredensial

Last Updated:Aug 21, 2026

Aktifkan MFA, gunakan peran RAM alih-alih AccessKey, dan lakukan rotasi kredensial secara berkala untuk mencegah akses tidak sah.

Risiko keamanan

Ancaman keamanan utama terhadap akun Alibaba Cloud mencakup serangan brute-force terhadap kata sandi dan kebocoran kredensial jangka panjang, seperti AccessKey dan token STS. Jika penyerang memperoleh kredensial tersebut, mereka dapat menyamar sebagai pengguna sah untuk masuk, mengelola sumber daya, atau mengakses data sensitif. Hal ini dapat menyebabkan:

  • Penggunaan sumber daya tanpa izin, yang berakibat langsung pada kerugian finansial.

  • Kerusakan infrastruktur atau gangguan layanan yang memengaruhi ketersediaan bisnis.

  • Kebocoran atau enkripsi data sensitif, yang berpotensi menyebabkan pengungkapan informasi dan risiko ransomware.

  • Pemasangan program berbahaya atau backdoor, yang menimbulkan ancaman jangka panjang terhadap keamanan sistem dan integritas data.

Praktik terbaik

Lindungi password akun dan aktifkan MFA

  • Tetapkan kata sandi yang kompleks: Kata sandi lemah merupakan penyebab utama peretasan akun. Hindari kata sandi lemah untuk mencegah serangan brute-force.

  • Ubah kata sandi secara berkala: Ganti kata sandi Anda setiap 90 hari untuk mengurangi risiko kebocoran akibat penggunaan jangka panjang.

  • Aktifkan MFA: Menyambungkan atau melepas perangkat MFA virtual untuk akun Alibaba Cloud dan pengguna RAM Anda. MFA menambahkan kode verifikasi dinamis, seperti token ponsel atau kunci yang dilindungi perangkat keras, sebagai lapisan tambahan di luar otentikasi kata sandi untuk mencegah akses tidak sah.

Gunakan peran RAM ECS alih-alih AccessKey

Jika aplikasi pada Instance ECS perlu memanggil API Alibaba Cloud, misalnya untuk penskalaan ECS, gunakan peran RAM alih-alih AccessKey.

Buat pengguna RAM dan sambungkan peran

Akun harus memiliki izin sts:AssumeRole untuk menyambungkan peran ke instance.

Konsol

  1. Buat dan otorisasi pengguna Resource Access Management (RAM).

  2. Sambungkan peran RAM ke Instance ECS.

    Menyambungkan peran saat pembuatan instance

    Saat membuat instance di halaman pembelian instance, pilih Instance RAM Role di bagian Advanced Options.

    Pilih Security Hardening Mode untuk Metadata Access Mode guna mencegah kebocoran token STS akibat kerentanan atau kesalahan konfigurasi instance. Lihat Mengakses metadata instance menggunakan mode enforced.

    Menyambungkan peran ke instance yang sudah ada

    1. Buka halaman Konsol ECS - Instances dan pilih wilayah target.

    2. Klik ID instance untuk membuka halaman detail instance.

    3. Pada bagian Other Information, klik Attach/Detach RAM Role.

    4. Pilih peran RAM dan klik OK.

    Penting

    Instance ECS hanya dapat memiliki satu peran RAM. Jika aplikasi Anda memerlukan beberapa izin, berikan semua izin tersebut pada satu peran tersebut.

    Misalnya, jika instance sudah memiliki peran AliyunECSDiskEncryptDefaultRole dan juga memerlukan izin manajemen antarmuka jaringan, tambahkan kebijakan AliyunECSNetworkInterfaceManagementAccess ke peran tersebut di Konsol RAM.

API

Gunakan operasi API untuk menyambungkan dan melepas peran:

Gunakan peran RAM untuk mengakses layanan Alibaba Cloud dari aplikasi

Aplikasi pada Instance ECS dapat memperoleh token STS temporary dari layanan metadata instance dan menggunakannya untuk memanggil API Alibaba Cloud.

Kode contoh

from alibabacloud_credentials.client import Client as CredClient
from alibabacloud_credentials.models import Config as CredConfig
from alibabacloud_tea_openapi.models import Config
from alibabacloud_ecs20140526.client import Client as EcsClient
from alibabacloud_ecs20140526 import models as ecs_models
from alibabacloud_tea_util.models import RuntimeOptions

# Langkah 1: Peroleh token STS
def get_sts_token():
    config = CredConfig(
        type="ecs_ram_role",
        enable_imds_v1=False
    )
    cred_client = CredClient(config)
    credential = cred_client.get_credential()
    return {
        "AccessKeyId": credential.get_access_key_id(),
        "AccessKeySecret": credential.get_access_key_secret(),
        "SecurityToken": credential.get_security_token()
    }

# Langkah 2: Inisialisasi klien ECS
def create_ecs_client(sts_token):
    config = Config(
        access_key_id=sts_token["AccessKeyId"],
        access_key_secret=sts_token["AccessKeySecret"],
        security_token=sts_token["SecurityToken"],
        endpoint="ecs.cn-hangzhou.aliyuncs.com"
    )
    return EcsClient(config)

# Langkah 3: Buat permintaan untuk membuat instance
def build_create_instance_request():
    return ecs_models.RunInstancesRequest(
        region_id="cn-hangzhou",
        image_id="aliyun_3_x64_20G_scc_alibase_20220225.vhd",
        instance_type="ecs.e-c1m2.xlarge",
        security_group_id="sg-bp1esyhwfbqeyudt****",
        v_switch_id="vsw-bp1nzprm8h7mmnl8t****",
        instance_name="sdk-test",
        instance_charge_type="PostPaid",
        key_pair_name="sdk-key-pair",
        system_disk_category="cloud_essd"
    )

# Langkah 4: Panggil API untuk membuat instance
def create_instance(client, request):
    runtime = RuntimeOptions()
    try:
        response = client.run_instances_with_options(request, runtime)
        print("Instance berhasil dibuat. ID Instance:", response.body.instance_id_sets.instance_id_set[0])
    except Exception as e:
        print("Gagal membuat instance. Pesan error:", e)

# Fungsi utama
if __name__ == "__main__":
    sts_token = get_sts_token()  # Peroleh token STS
    ecs_client = create_ecs_client(sts_token)  # Inisialisasi klien ECS
    request = build_create_instance_request()  # Buat permintaan untuk membuat instance
    create_instance(ecs_client, request)  # Panggil API untuk membuat instance

Lindungi AccessKey dan kurangi risiko kebocoran

Jika Anda harus menggunakan AccessKey, perkuat manajemen keamanannya sepanjang siklus hidupnya — pembuatan, penyimpanan, distribusi, dan penggunaan.

  • Pembuatan: Ikuti prinsip "satu AccessKey per orang, satu AccessKey per aplikasi." Jangan berbagi AccessKey di antara beberapa pengguna atau program. Hal ini memungkinkan Anda mengidentifikasi pihak yang bertanggung jawab, membatasi dampak, dan melakukan rotasi kunci jika terjadi kebocoran.

  • Manajemen izin: Ikuti prinsip hak istimewa minimal dan berikan hanya izin yang diperlukan. Gunakan pengguna RAM dan tetapkan izin berdasarkan tanggung jawab. Hindari penggunaan AccessKey akun Alibaba Cloud. Lihat Hindari penggunaan akun Alibaba Cloud Anda dan berikan izin berbeda kepada pengguna RAM sesuai tanggung jawabnya.

  • Penyimpanan aman: Simpan AccessKey pada perangkat tepercaya, seperti:

    • File yang hanya dapat dibaca oleh root atau pengguna tertentu.

    • Database atau Key Management Service (KMS) dengan kontrol akses.

    • Jangan simpan AccessKey di catatan, repositori kode, riwayat obrolan, atau tanda tangan pribadi.

  • Distribusi aman: Kirim file AccessKey yang telah dienkripsi melalui satu saluran (misalnya email) dan kata sandi dekripsinya melalui saluran terpisah (misalnya pesan teks).

  • Penggunaan aman: Jangan hard-code AccessKey dalam kode Anda. Simpan AccessKey dalam file konfigurasi terpisah, enkripsi, dan simpan di server tepercaya. Setelah didistribusikan, dekripsi file tersebut dan atur izin agar hanya pemilik yang dapat membacanya.

  • Kontrol akses jaringan: Konfigurasikan kebijakan Kontrol Akses Jaringan untuk AccessKey di Konsol RAM.

  • Rotasi dan pembersihan berkala

    • Rotasi berkala: Rotasi AccessKey Anda setiap 90 hari. Hasilkan AccessKey baru dan beri tahu pengguna untuk memperbarui.

    • Pembersihan berkala: Periksa catatan operasi AccessKey di Konsol RAM dan cabut kunci yang tidak digunakan. Lihat Hapus AccessKey pengguna RAM.

  • Memantau kebocoran AccessKey: Gunakan fitur deteksi kebocoran AccessKey di Security Center untuk memeriksa apakah AccessKey telah bocor. Fitur ini mendukung pemberitahuan peringatan. Jika terjadi kebocoran, Alibaba Cloud menyediakan perlindungan restriktif untuk AccessKey guna mencegah eskalasi.

Kepatuhan

Periksa apakah instance ECS menggunakan AccessKey

Kueri log AccessKey untuk menemukan layanan, alamat IP, dan sumber daya yang terkait dengan AccessKey tersebut.

Prasyarat: Anda telah membuat trail ActionTrail dan mengirimkan log ke penyimpanan log SLS.

  • Kueri panggilan AccessKey yang dimulai dari Titik Akhir VPC:

    * | SELECT "event.eventid","event.sourceipaddress", "event.userIdentity.accessKeyId",  "event.vpcId" WHERE "event.userIdentity.accessKeyId" LIKE 'LTA%' and "event.vpcId" LIKE 'vpc%'

    Contoh hasil:

    image.png

    Gunakan vpcId dan sourceipaddress untuk mengidentifikasi Instance ECS yang memulai panggilan tersebut. Kemudian, selidiki program mana yang menggunakan accessKeyId untuk memanggil OpenAPI.

  • Kueri panggilan AccessKey yang dimulai dari Titik Akhir Internet:

    * | SELECT "event.eventid","event.sourceipaddress", "event.userIdentity.accessKeyId" WHERE "event.userIdentity.accessKeyId" LIKE 'LTA%' and "event.vpcId" IS NULL

    Contoh hasil:

    image.png

    Tentukan apakah sourceipaddress merupakan Alamat IP publik Instance ECS. Ambil daftar EIP dan alamat IP publik di bawah akun Anda, lalu periksa apakah sourceipaddress termasuk milik Anda. Jika EIP atau alamat IP publik langsung disambungkan ke Instance ECS, Anda dapat melokalisasi instance tersebut dan memodifikasi konfigurasinya.

Ganti AccessKey dengan peran RAM instans

Lihat Gunakan peran RAM ECS alih-alih AccessKey dan Solusi untuk kebocoran AccessKey.