Tüm SLS API istekleri, Alibaba Cloud AccessKey çiftleri ve HMAC-SHA1 imzalama kullanılarak imza tabanlı kimlik doğrulama gerektirir.
Kullanım notları
SLS SDK, imzalama işlemini otomatik olarak yönetir ve birden fazla dili destekler. Mümkün olduğunda manuel imzalama yerine SDK'yı kullanın. Simple Log Service SDK'ya genel bakış.
Güvenlik doğrulama süreci:
-
İstekte bulunanı tanımlama.
İstekte bulunan, bir AccessKey çifti kullanarak dijital bir imza oluşturur. SLS, bu çifti kimlik doğrulama ve erişim kontrolü için kullanır.
-
İstek tahrifatını algılama.
SLS, imzayı sunucu tarafında yeniden hesaplar ve istemci tarafından sağlanan imza ile karşılaştırır. Eşleşmeme durumu tahrifat olduğunu gösterir ve istek reddedilir.
İmzalama işlemi için bir AccessKey çifti gerekir. AccessKey çifti. Mevcut bir çifti kullanın veya yeni bir tane oluşturun ve enabled durumunda olduğundan emin olun.
Aşağıdaki bölümlerde istek yapısı, imza hesaplama yöntemi ve örnek imzalama kodları ele alınmaktadır.
İstek yapısı
Aşağıdaki tabloda gerekli HTTP üst bilgi alanları listelenmiştir. Değerler büyük/küçük harfe duyarlıdır.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
İmzalı bir HTTP isteği örneği:
POST /logstores/test-logstore/shards/0?action=split HTTP/1.1
Host: ali-test-project.cn-hangzhou.log.aliyuncs.com
Date: Tue, 23 Aug 2022 12:12:03 GMT
x-log-apiversion: 0.6.0
x-log-signaturemethod: hmac-sha1
Content-Length: 18
Content-Type: application/json
Content-MD5: 49DFDD54B01CBCD2D2AB5E9E5EE6B9B9
Authorization: LOG testAccessKeyId:RLETq4u7sWb3cssZIhsun****
{"hello": "world"}
İmza hesaplama süreci
Authorization üst bilgisi LOG accessKeyId:Signature formatını kullanır; burada AccessKeyId anahtar kimliğinizdir ve Signature hesaplanan imza dizesidir. Bu bölümde Signature değerinin nasıl oluşturulacağı açıklanmaktadır.
İmza mesajı
Bir imza dizesi, bir imza mesajının şifrelenip kodlanmasıyla üretilir. Aşağıdaki şekilde oluşturma süreci gösterilmektedir.
|
Parameter |
Description |
Example |
|
method |
Büyük harfle yazılmış HTTP istek yöntemi. Geçerli değerler: GET, POST, PUT ve DELETE. |
GET |
|
Content-MD5 |
İstek gövdesinin MD5 karması, büyük harfli onaltılık dize olarak. Gövde yoksa boş dize. |
49DFDD54B01CBCD2D2AB5E9E5EE6B9B9 |
|
Content-Type |
HTTP istek gövde türü. Gövde yoksa boş dize. |
application/json |
|
Date |
RFC 822/1123 formatındaki (GMT) geçerli saat. Format: |
Mon, 3 Jan 2010 08:33:47 GMT |
|
Header |
|
|
|
Uri |
Alan adı ve sorgu parametreleri hariç istek yolu. |
/logstores/test-logstore |
|
Query-related parameters |
Anahtara göre artan düzende sıralanan sorgu parametreleri, |
offset=1&size=10 |
Örnek imza mesajı. Son satır dışındaki her satır bir satır sonuyla biter.
POST
1572A15D7DE7EE9E7BB86461FFEA9499
application/json
Tue, 23 Aug 2022 12:12:03 GMT
x-log-apiversion:0.6.0
x-log-bodyrawsize:0
x-log-signaturemethod:hmac-sha1
/logstores?offset=1&size=10
İmza dizesi
İmza dizesini hesaplamak için:
İmza mesajını oluşturun.
Mesajı AccessKey secret'ınız kullanarak HMAC-SHA1 ile şifreleyin.
İmza dizesini üretmek için sonucu Base64 ile kodlayın.
Örnekler
Aşağıdaki örneklerde şu AccessKey çifti kullanılmaktadır:
AccessKeyId = "bq2sjzesjmo86kq****"
AccessKeySecret = "4fdO2fTDDnZPU/L7CHNd****"
-
Örnek 1
GET isteği kullanarak ali-test-project içindeki tüm Logstore'ları listeleyin. İmzalanacak HTTP isteği:
GET /logstores?logstoreName=&offset=0&size=1000 HTTP/1.1 Date: Mon, 09 Nov 2015 06:11:16 GMT Host: ali-test-project.cn-hangzhou.log.aliyuncs.com x-log-apiversion: 0.6.0 x-log-bodyrawsize:0 x-log-signaturemethod: hmac-sha1Oluşturulan imza mesajı:
GET Mon, 09 Nov 2015 06:11:16 GMT x-log-apiversion:0.6.0 x-log-bodyrawsize:0 x-log-signaturemethod:hmac-sha1 /logstores?logstoreName=&offset=0&size=1000GET isteklerinde gövde olmadığından Content-MD5 ve Content-Type boş dizelerdir. Elde edilen imza:
jEYOTCJs2e88o+y5F4/S5I****İmzalı HTTP isteği:
GET /logstores?logstoreName=&offset=0&size=1000 HTTP/1.1 Date: Mon, 09 Nov 2015 06:11:16 GMT Host: ali-test-project.cn-hangzhou.log.aliyuncs.com x-log-apiversion: 0.6.0 x-log-bodyrawsize:0 x-log-signaturemethod: hmac-sha1 Authorization: LOG bq2sjzesjmo86kq35behupbq:jEYOTCJs2e88o+y5F4/S5I**** -
Örnek 2
ali-test-project içindeki test-logstore'a aşağıdaki günlüğü yazın:
topic="" time=1447048976 source="10.10.10.1" "TestKey": "TestContent"İmzalanacak HTTP isteği:
POST /logstores/test-logstore HTTP/1.1 Date: Mon, 09 Nov 2015 06:03:03 GMT Host: ali-test-project.cn-hangzhou.log.aliyuncs.com x-log-apiversion:0.6.0 x-log-bodyrawsize:50 x-log-signaturemethod:hmac-sha1 Content-MD5: 1DD45FA4A70A9300CC9FE7305AF2C494 Content-Length: 52 <The log is serialized into byte streams in the Protobuf format.>Günlük, istek gövdesi olarak Protocol Buffer (Protobuf) formatında serileştirilir. Protobuf formatı hakkında daha fazla bilgi için bkz. Veri kodlama. Content-Type application/x-protobuf olup Content-MD5, gövdenin MD5 karmasıdır. Oluşturulan imza mesajı:
POST 1DD45FA4A70A9300CC9FE7305AF2C494 application/x-protobuf Mon, 09 Nov 2015 06:03:03 GMT x-log-apiversion:0.6.0 x-log-bodyrawsize:50 x-log-compresstype:lz4 x-log-signaturemethod:hmac-sha1 /logstores/ali-test-logstoreElde edilen imza:
XWLGYHGg2F2hcfxWxMLiNk****İmzalı HTTP isteği:
POST /logstores/ali-test-logstore HTTP/1.1 Date: Mon, 09 Nov 2015 06:03:03 GMT Host: ali-test-project.cn-hangzhou.log.aliyuncs.com x-log-apiversion:0.6.0 x-log-bodyrawsize:50 x-log-compresstype:lz4 x-log-signaturemethod:hmac-sha1 Content-MD5: 1DD45FA4A70A9300CC9FE7305AF2C494 Content-Length: 52 Authorization: LOG bq2sjzesjmo86kq35behupbq:XWLGYHGg2F2hcfxWxMLiNk**** <The log is serialized into byte streams in the Protobuf format.>