Tüm Ürünler
Search
Belge Merkezi

ApsaraMQ for RocketMQ:RAM rolleriyle hesaplar arası erişimi devretme

Son Güncelleme:Oct 04, 2026

A Şirketinin Alibaba Cloud hesabında bir RAM rolü oluşturun, bu role izinler atayın ve B Şirketinin bu rolü üstlenmesine olanak tanıyın. B Şirketinin hesabı veya RAM kullanıcıları daha sonra A Şirketinin Alibaba Cloud kaynaklarına erişebilir.

Arka Plan

A Şirketi Message Queue for Apache RocketMQ kullanır ve belirli operasyonel görevleri B Şirketine devretmek ister.

Gereksinimler:

  • A Şirketi kaynak sahibi olarak kalmak ancak konsol tabanlı görevlerin (kaynak sorgulama ve izleme gibi) B Şirketi tarafından yürütülmesini istemektedir.

  • A Şirketi, B Şirketi çalışanları işe alındığında veya ayrıldığında izin yönetimiyle uğraşmak istemez. B Şirketi kendi RAM kullanıcılarının hangilerinin A Şirketinin kaynaklarına erişebileceğini kontrol etmeli ve bunlara özel izinler tanımlamalıdır.

  • A Şirketi örneğin sözleşme sona erdiğinde B Şirketinin erişimini istediği zaman iptal edebilmelidir.

Çözüm

Bu gereksinimleri karşılamak için A Şirketi B Şirketi çalışanlarına Message Queue for Apache RocketMQ kaynaklarına erişim izni verir. A Şirketi ve B Şirketinin her birinin bir Alibaba Cloud hesabına sahip olduğunu varsayalım. Bu kılavuz hesaplar arası erişimi yapılandırmak için aşağıdaki adımları içerir:

  1. 1. Adım: RAM rolü oluşturma ve yetkilendirme

    A Şirketinin hesabında bir RAM rolü oluşturun, gerekli ilkeleri ekleyin ve B Şirketinin hesabındaki RAM kullanıcılarının bu rolü üstlenmesine izin veren bir güven ilkesi yapılandırın.

  2. 2. Adım: Hesaplar arası kaynaklara erişim

    RAM rolü yapılandırıldıktan sonra B Şirketinin hesabındaki RAM kullanıcıları geçici izinler elde etmek için rolü üstlenebilir. Daha sonra A Şirketinin hesabındaki kaynaklara şu yollarla erişebilirler:

    • SDK kullanarak

    • Konsolu kullanarak

    • API çağrıları yaparak

1. Adım: RAM rolü oluşturma ve yetkilendirme

  1. A Şirketinin Alibaba Cloud hesabını kullanarak RAM konsolunda oturum açın ve B Şirketi için bir RAM rolü oluşturun.

  2. İsteğe bağlı: A Şirketinin hesabında RAM rolü için özel bir ilke oluşturun.

    Daha fazla bilgi için bkz. Özel ilke oluşturma.

    Şu anda Message Queue for Apache RocketMQ örnek düzeyinde, konu düzeyinde ve grup düzeyinde izinleri destekler. Daha fazla bilgi için bkz. Message Queue for Apache RocketMQ için özel ilkeler.

  3. Varsayılan olarak yeni bir RAM rolünün hiçbir izni yoktur. A Şirketi sistem ilkesi veya özel ilke ekleyerek role izin vermelidir.

    Daha fazla bilgi için bkz. RAM kullanıcısına izin verme.

  4. B Şirketinin Alibaba Cloud hesabını kullanarak RAM konsolunda oturum açın ve bir RAM kullanıcısı oluşturun.

    Daha fazla bilgi için bkz. RAM kullanıcısı oluşturma.

  5. B Şirketinin hesabında RAM kullanıcısına AliyunSTSAssumeRoleAccess izni verin.

    Daha fazla bilgi için bkz. RAM kullanıcısına izin verme.

    B Şirketinin hesabındaki RAM kullanıcısına AliyunSTSAssumeRoleAccess iznini verin; böylece kullanıcı A Şirketinin hesabında oluşturulan RAM rolünü üstlenebilir.

2. Adım: Hesaplar arası kaynaklara erişim

  • SDK kullanarak kaynaklara erişim

    B Şirketinin hesabındaki RAM kullanıcıları SDK'yı kullanarak A Şirketinin hesabındaki Message Queue for Apache RocketMQ kaynaklarına erişebilir. Aşağıdaki iki yapılandırma yönteminden birini seçin:

    • STS belirteci yapılandırma: Bu yöntem RAM kullanıcısının AccessKey ID'sini, AccessKey gizli anahtarını ve Security Token Service'ten (STS) alınan geçici bir güvenlik belirtecini sağlamayı gerektirir. Geçici güvenlik belirtecinin süresi dolar ve yenilenmesi gerekir. Geçici güvenlik belirteci edinme hakkında daha fazla bilgi için bkz. AssumeRole.

      Önemli
      • STS belirteci yöntemi yalnızca Message Queue for Apache RocketMQ 1.7.8.Final ve sonraki sürümler için Java SDK tarafından desteklenir.

      • AccessKey ID ve AccessKey gizli anahtarı edinmek için bkz. AccessKey çifti oluşturma.

      Örnek: STS belirteci yapılandırması

      • Message Queue for Apache RocketMQ istemcisini başlatırken elde edilen AccessKey ID, AccessKey gizli anahtarı ve geçici güvenlik belirtecini aşağıdaki özelliklerde belirtin:

        Properties properties = new Properties();
        // Make sure that the ALIBABA_CLOUD_ACCESS_KEY_ID, ALIBABA_CLOUD_ACCESS_KEY_SECRET, and ALIBABA_CLOUD_SECURITY_TOKEN environment variables are set.
        // The AccessKey ID obtained from STS.
        properties.put(PropertyKeyConst.AccessKey, System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"));
        // The AccessKey secret obtained from STS.
        properties.put(PropertyKeyConst.SecretKey, System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
        // The temporary security token.
        properties.put(PropertyKeyConst.SecurityToken, System.getenv("ALIBABA_CLOUD_SECURITY_TOKEN"));
        // Other properties.
        properties.put(PropertyKeyConst.NAMESRV_ADDR, "XXX");
        ......
        Producer client = ONSFactory.createProducer(properties);
        client.start();                    
      • Geçici güvenlik belirtecinin süresi dolduğunda bunu güncellemek için updateCredential yöntemini çağırın.

        Properties properties = new Properties();
        // Make sure that the ALIBABA_CLOUD_ACCESS_KEY_ID, ALIBABA_CLOUD_ACCESS_KEY_SECRET, and ALIBABA_CLOUD_SECURITY_TOKEN environment variables are set.
        // The AccessKey ID obtained from STS.
        properties.put(PropertyKeyConst.AccessKey, System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"));
        // The AccessKey secret obtained from STS.
        properties.put(PropertyKeyConst.SecretKey, System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
        // The temporary security token.
        properties.put(PropertyKeyConst.SecurityToken, System.getenv("ALIBABA_CLOUD_SECURITY_TOKEN"));
        client.updateCredential(properties);                    
    • ECS örneği RAM rolü yapılandırma: Uygulamanız bir Elastic Compute Service (ECS) örneğinde çalışıyorsa kimlik bilgilerinizi SDK koduna sabit olarak yazmaktan kaçınmak için bu yöntemi kullanın. Yalnızca RAM rolü adını sağlarsınız ancak öncelikle RAM rolünü ECS örneğine eklemelisiniz. Daha fazla bilgi için bkz. Örnek RAM rolü ekleme.

      Önemli

      ECS örneği RAM rolü yöntemi yalnızca Message Queue for Apache RocketMQ 1.8.7.3.Final ve sonraki sürümler için Java SDK tarafından desteklenir.

      Örnek: ECS örneği RAM rolü yapılandırması

      Properties properties = new Properties();
      // The name of the RAM role that you created and attached to the ECS instance.
      properties.put(PropertyKeyConst.RAM_ROLE_NAME,"XXX");
  • Konsoldan kaynaklara erişim

    B Şirketinin hesabındaki RAM kullanıcıları konsoldan A Şirketinin Message Queue for Apache RocketMQ kaynaklarına erişmek için şu adımları izleyebilir:

    1. Tarayıcıda RAM Kullanıcı Oturum Açma sayfasını açın.

    2. RAM User Logon sayfasında RAM kullanıcısının oturum açma adını girin, Next öğesini tıklayın, parolayı girin ve ardından Log On öğesini tıklayın.

      Not

      Oturum açma adı <$username>@<$AccountAlias> veya <$username>@<$AccountAlias>.onaliyun.com biçimindedir. <$AccountAlias> Alibaba Cloud hesabının takma adıdır. Takma ad ayarlanmamışsa varsayılan olarak Alibaba Cloud hesabının kimliği kullanılır.

    3. Alibaba Cloud konsolunda oturum açtıktan sonra sağ üst köşedeki profil resminin üzerine gelin ve Switch Identity öğesini tıklayın.

    4. Switch Role sayfasında A Şirketinin hesabı için Enterprise Alias, Default Domain veya Account UID bilgilerini girin. Ardından Role Name bilgisini girin ve Submit öğesini tıklayın.

    5. Artık A Şirketinin hesabındaki Message Queue for Apache RocketMQ kaynaklarını yönetebilirsiniz.

  • API çağrıları kullanarak kaynaklara erişim

    B Şirketinin hesabındaki RAM kullanıcıları Message Queue for Apache RocketMQ API çağrıları yaparak A Şirketinin hesabındaki kaynaklara erişebilir. API çağrıları yapma hakkında daha fazla bilgi için bkz. API istekleri gönderme.

Daha fazla bilgi