Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Topik ini memberikan rincian tentang cara menggunakan variabel kebijakan sertifikat. Variabel kebijakan sertifikat X.509 sangat penting saat Anda membuat AWS IoT Core kebijakan yang memberikan izin berdasarkan atribut sertifikat X.509. Jika sertifikat X.509 Anda tidak menyertakan atribut sertifikat tertentu tetapi variabel kebijakan sertifikat terkait digunakan dalam dokumen kebijakan Anda, evaluasi kebijakan dapat menyebabkan perilaku yang tidak terduga. Ini karena variabel kebijakan yang hilang tidak dievaluasi dalam pernyataan kebijakan.
Dalam topik ini:
Menggunakan atribut penerbit sertifikat sebagai variabel kebijakan sertifikat
Menggunakan atribut subjek sertifikat sebagai variabel kebijakan sertifikat
Menggunakan atribut nama alternatif Penerbit sertifikat sebagai variabel kebijakan sertifikat
Menggunakan atribut nama alternatif subjek sertifikat sebagai variabel kebijakan sertifikat
Menggunakan atribut sertifikat lain sebagai variabel kebijakan sertifikat
Contoh sertifikat X.509
Sertifikat X.509 yang khas mungkin muncul sebagai berikut. Sertifikat contoh ini mencakup atribut sertifikat. Selama evaluasi AWS IoT Core kebijakan, atribut sertifikat berikut akan diisi sebagai variabel kebijakan sertifikat:Serial Number
,,Issuer
, Subject
X509v3 Issuer
Alternative Name
, danX509v3 Subject Alternative
Name
.
Certificate: Data: Version: 3 (0x2) Serial Number: 92:12:85:cb:b7:a5:e0:86 Signature Algorithm: sha256WithRSAEncryption Issuer: C=US, O=IoT Devices, OU=SmartHome, ST=WA, CN=IoT Devices Primary CA, GN=Primary CA1/initials=XY/dnQualifier=Example corp, SN=SmartHome/ title=CA1/pseudonym=Primary_CA/generationQualifier=2/serialNumber=987 Validity Not Before: Mar 26 03:25:40 2024 GMT Not After : Apr 28 03:25:40 2025 GMT Subject: C=US, O=IoT Devices, OU=LightBulb, ST=NY, CN=LightBulb Device Cert, GN=Bulb/initials=ZZ/dnQualifier=Bulb001, SN=Multi Color/title=RGB/pseudonym=RGB Device/generationQualifier=4/serialNumber=123 Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public-Key: (2048 bit) Modulus: << REDACTED >> Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE X509v3 Key Usage: Digital Signature, Non Repudiation, Key Encipherment X509v3 Subject Alternative Name: DNS:example.com, IP Address:1.2.3.4, URI:ResourceIdentifier001, email:device1@example.com, DirName:/C=US/O=IoT/OU=SmartHome/CN=LightBulbCert X509v3 Issuer Alternative Name: DNS:issuer.com, IP Address:5.6.7.8, URI:PrimarySignerCA, email:primary@issuer.com, DirName:/C=US/O=Issuer/OU=IoT Devices/CN=Primary Issuer CA Signature Algorithm: sha256WithRSAEncryption << REDACTED >>
Menggunakan atribut penerbit sertifikat sebagai variabel kebijakan sertifikat
Tabel berikut memberikan rincian tentang bagaimana atribut penerbit sertifikat akan diisi dalam kebijakan. AWS IoT Core
Atribut penerbit sertifikat | Variabel kebijakan sertifikat |
---|---|
|
|
Menggunakan atribut subjek sertifikat sebagai variabel kebijakan sertifikat
Tabel berikut memberikan rincian tentang bagaimana atribut subjek sertifikat akan diisi dalam AWS IoT Core kebijakan.
Atribut subjek sertifikat | Variabel kebijakan sertifikat |
---|---|
|
|
Menggunakan atribut nama alternatif Penerbit sertifikat sebagai variabel kebijakan sertifikat
Tabel berikut memberikan rincian tentang bagaimana atribut nama alternatif penerbit sertifikat akan diisi dalam kebijakan. AWS IoT Core
Nama Alternatif Penerbit X509v3 | Atribut dalam kebijakan |
---|---|
|
|
Menggunakan atribut nama alternatif subjek sertifikat sebagai variabel kebijakan sertifikat
Tabel berikut memberikan rincian tentang bagaimana atribut nama alternatif subjek sertifikat akan diisi dalam AWS IoT Core kebijakan.
X509v3 Nama Alternatif Subjek | Atribut dalam kebijakan |
---|---|
|
|
Menggunakan atribut sertifikat lain sebagai variabel kebijakan sertifikat
Tabel berikut memberikan rincian tentang bagaimana atribut sertifikat lainnya akan diisi dalam AWS IoT Core kebijakan.
Atribut sertifikat lainnya | Variabel kebijakan sertifikat |
---|---|
|
|
X.509 Keterbatasan variabel kebijakan sertifikat
Batasan berikut berlaku untuk variabel kebijakan sertifikat X.509:
- Variabel kebijakan yang hilang
-
Jika sertifikat X.509 Anda tidak menyertakan atribut sertifikat tertentu tetapi variabel kebijakan sertifikat terkait digunakan dalam dokumen kebijakan Anda, evaluasi kebijakan dapat menyebabkan perilaku yang tidak terduga. Ini karena variabel kebijakan yang hilang tidak dievaluasi dalam pernyataan kebijakan.
- SerialNumber Format sertifikat
-
AWS IoT Core memperlakukan nomor seri sertifikat sebagai representasi string dari bilangan bulat desimal. Misalnya, jika kebijakan hanya mengizinkan koneksi dengan ID Klien yang cocok dengan nomor seri sertifikat, ID klien harus berupa nomor seri dalam format desimal.
- Wildcard
-
Jika karakter wildcard hadir dalam atribut sertifikat, variabel kebijakan tidak diganti dengan nilai atribut sertifikat. Ini akan meninggalkan
${policy-variable}
teks dalam dokumen kebijakan. Hal ini dapat menyebabkan kegagalan otorisasi. Karakter wildcard berikut dapat digunakan:*
,,$
,+
?
, dan#
. - Bidang array
-
Atribut sertifikat yang berisi array dibatasi hingga lima item. Item tambahan diabaikan.
- Panjang tali
-
Semua nilai string dibatasi hingga 1024 karakter. Jika atribut sertifikat berisi string yang lebih panjang dari 1024 karakter, variabel kebijakan tidak diganti dengan nilai atribut sertifikat. Ini akan meninggalkan
${policy-variable}
dokumen kebijakan. Hal ini dapat menyebabkan kegagalan otorisasi. - Karakter khusus
-
Setiap karakter khusus, seperti
,
,,"
,\
,+
,=
<
,>
dan;
harus diawali dengan garis miring terbalik (\
) bila digunakan dalam variabel kebijakan. Misalnya,Amazon Web Services O=Amazon.com Inc. L=Seattle ST=Washington C=US
menjadiAmazon Web Service O\=Amazon.com Inc. L\=Seattle ST\=Washington C\=US
.
Contoh kebijakan menggunakan variabel kebijakan sertifikat
Dokumen kebijakan berikut memungkinkan koneksi dengan ID klien yang cocok dengan nomor seri sertifikat dan penerbitan ke topik yang cocok dengan pola:${iot:Certificate.Subject.Organization}/device-stats/${iot:ClientId}/*
.
penting
Jika sertifikat X.509 Anda tidak menyertakan atribut sertifikat tertentu tetapi variabel kebijakan sertifikat terkait digunakan dalam dokumen kebijakan Anda, evaluasi kebijakan dapat menyebabkan perilaku yang tidak terduga. Ini karena variabel kebijakan yang hilang tidak dievaluasi dalam pernyataan kebijakan. Misalnya, jika Anda melampirkan dokumen kebijakan berikut ke sertifikat yang tidak berisi iot:Certificate.Subject.Organization
atribut, variabel kebijakan iot:Certificate.Subject.Organization
sertifikat tidak akan diisi selama evaluasi kebijakan.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iot:Connect"
],
"Resource": [
"arn:aws:iot:us-east-1:123456789012:client/${iot:Certificate.SerialNumber}"
]
},
{
"Effect": "Allow",
"Action": [
"iot:Publish"
],
"Resource": [
"arn:aws:iot:us-east-1:123456789012:topic/${iot:Certificate.Subject.Organization}/device-stats/${iot:ClientId}/*"
]
}
]
}
Anda juga dapat menggunakan operator kondisi Null untuk memastikan bahwa variabel kebijakan sertifikat yang digunakan dalam kebijakan diisi selama evaluasi kebijakan. Dokumen kebijakan berikut mengizinkan iot:Connect
sertifikat hanya jika terdapat atribut Nama umum Sertifikat Sertifikat dan Subjek Sertifikat.
Semua variabel kebijakan sertifikat memiliki nilai String, sehingga semua operator kondisi String didukung.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iot:Connect"
],
"Resource": [
"arn:aws:iot:us-east-1:123456789012:client/*"
],
"Condition": {
"Null": {
"iot:Certificate.SerialNumber": "false",
"iot:Certificate.Subject.CommonName": "false"
}
}
}
]
}