

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Variabel kebijakan Sertifikat X.509 AWS IoT Core
<a name="cert-policy-variables"></a>

Variabel kebijakan sertifikat X.509 membantu dengan kebijakan penulisan. AWS IoT Core Kebijakan ini memberikan izin berdasarkan atribut sertifikat X.509. Bagian berikut menjelaskan cara menggunakan variabel kebijakan sertifikat ini.

**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.

## CertificateId
<a name="cert-policy-variables-certid"></a>

Di [RegisterCertificate](https://docs.aws.amazon.com/iot/latest/apireference/API_RegisterCertificate.html)API, `certificateId` muncul di badan respons. Untuk mendapatkan informasi tentang sertifikat Anda, gunakan `certificateId` in [DescribeCertificate](https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeCertificate.html).

## Atribut penerbit
<a name="issuer-attributes"></a>

Variabel AWS IoT Core kebijakan berikut mendukung mengizinkan atau menolak izin, berdasarkan atribut sertifikat yang ditetapkan oleh penerbit sertifikat.
+ `iot:Certificate.Issuer.DistinguishedNameQualifier`
+ `iot:Certificate.Issuer.Country`
+ `iot:Certificate.Issuer.Organization`
+ `iot:Certificate.Issuer.OrganizationalUnit`
+ `iot:Certificate.Issuer.State`
+ `iot:Certificate.Issuer.CommonName`
+ `iot:Certificate.Issuer.SerialNumber`
+ `iot:Certificate.Issuer.Title`
+ `iot:Certificate.Issuer.Surname`
+ `iot:Certificate.Issuer.GivenName`
+ `iot:Certificate.Issuer.Initials`
+ `iot:Certificate.Issuer.Pseudonym`
+ `iot:Certificate.Issuer.GenerationQualifier` 

## Atribut subjek
<a name="subject-attributes"></a>

Variabel AWS IoT Core kebijakan berikut mendukung pemberian atau penolakan izin, berdasarkan atribut subjek sertifikat yang ditetapkan oleh penerbit sertifikat.
+ `iot:Certificate.Subject.DistinguishedNameQualifier`
+ `iot:Certificate.Subject.Country`
+ `iot:Certificate.Subject.Organization`
+ `iot:Certificate.Subject.OrganizationalUnit`
+ `iot:Certificate.Subject.State`
+ `iot:Certificate.Subject.CommonName`
+ `iot:Certificate.Subject.SerialNumber`
+ `iot:Certificate.Subject.Title`
+ `iot:Certificate.Subject.Surname`
+ `iot:Certificate.Subject.GivenName`
+ `iot:Certificate.Subject.Initials`
+ `iot:Certificate.Subject.Pseudonym`
+ `iot:Certificate.Subject.GenerationQualifier` 

Sertifikat X.509 menyediakan atribut ini dengan opsi untuk memuat satu atau lebih nilai. Secara default, variabel kebijakan untuk setiap atribut multi-nilai mengembalikan nilai pertama. Misalnya, `Certificate.Subject.Country` atribut mungkin berisi daftar nama negara, tetapi ketika dievaluasi dalam kebijakan, `iot:Certificate.Subject.Country` akan diganti dengan nama negara pertama.

Anda dapat meminta nilai atribut tertentu selain nilai pertama dengan menggunakan indeks berbasis satu. Misalnya, `iot:Certificate.Subject.Country.1` diganti dengan nama negara kedua di `Certificate.Subject.Country` atribut. Jika Anda menentukan nilai indeks yang tidak ada (misalnya, jika Anda meminta nilai ketiga ketika hanya ada dua nilai yang ditetapkan ke atribut), tidak ada substitusi yang dibuat dan otorisasi gagal. Anda dapat menggunakan `.List` akhiran pada nama variabel kebijakan untuk menentukan semua nilai atribut.

## Atribut nama alternatif penerbit
<a name="issuer-alternate-name-attributes"></a>

Variabel AWS IoT Core kebijakan berikut mendukung pemberian atau penolakan izin, berdasarkan atribut nama alternatif penerbit yang ditetapkan oleh penerbit sertifikat.
+ `iot:Certificate.Issuer.AlternativeName.RFC822Name`
+ `iot:Certificate.Issuer.AlternativeName.DNSName`
+ `iot:Certificate.Issuer.AlternativeName.DirectoryName`
+ `iot:Certificate.Issuer.AlternativeName.UniformResourceIdentifier`
+ `iot:Certificate.Issuer.AlternativeName.IPAddress`

## Atribut nama alternatif subjek
<a name="subject-alternate-name-attributes"></a>

Variabel AWS IoT Core kebijakan berikut mendukung pemberian atau penolakan izin, berdasarkan atribut nama alternatif subjek yang ditetapkan oleh penerbit sertifikat.
+ `iot:Certificate.Subject.AlternativeName.RFC822Name`
+ `iot:Certificate.Subject.AlternativeName.DNSName`
+ `iot:Certificate.Subject.AlternativeName.DirectoryName`
+ `iot:Certificate.Subject.AlternativeName.UniformResourceIdentifier`
+ `iot:Certificate.Subject.AlternativeName.IPAddress`

## Atribut lainnya
<a name="other-attributes"></a>

Anda dapat menggunakan `iot:Certificate.SerialNumber` untuk mengizinkan atau menolak akses ke AWS IoT Core sumber daya, berdasarkan nomor seri sertifikat. Variabel `iot:Certificate.AvailableKeys` kebijakan berisi nama semua variabel kebijakan sertifikat yang berisi nilai.

# Menggunakan variabel kebijakan sertifikat X.509
<a name="use-policy-variables"></a>

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.

**Topics**
+ [Contoh sertifikat X.509](#certificate-example)
+ [Menggunakan atribut penerbit sertifikat sebagai variabel kebijakan sertifikat](#issuer-attributes-policy)
+ [Menggunakan atribut subjek sertifikat sebagai variabel kebijakan sertifikat](#subject-attributes-policy)
+ [Menggunakan atribut nama alternatif Penerbit sertifikat sebagai variabel kebijakan sertifikat](#issuer-alternate-name-attributes-policy)
+ [Menggunakan atribut nama alternatif subjek sertifikat sebagai variabel kebijakan sertifikat](#subject-alternate-name-attributes-policy)
+ [Menggunakan atribut sertifikat lain sebagai variabel kebijakan sertifikat](#other-attributes-policy)
+ [X.509 Keterbatasan variabel kebijakan sertifikat](#policy-limits)
+ [Contoh kebijakan menggunakan variabel kebijakan sertifikat](#example-attributes-policy)

## Contoh sertifikat X.509
<a name="certificate-example"></a>

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`, dan`X509v3 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
<a name="issuer-attributes-policy"></a>

Tabel berikut memberikan rincian tentang bagaimana atribut penerbit sertifikat akan diisi dalam kebijakan. AWS IoT Core 


**Atribut penerbit yang akan diisi dalam kebijakan**  

| Atribut penerbit sertifikat | Variabel kebijakan sertifikat | 
| --- | --- | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/use-policy-variables.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/use-policy-variables.html)  | 

## Menggunakan atribut subjek sertifikat sebagai variabel kebijakan sertifikat
<a name="subject-attributes-policy"></a>

Tabel berikut memberikan rincian tentang bagaimana atribut subjek sertifikat akan diisi dalam AWS IoT Core kebijakan.


**Atribut subjek yang akan diisi dalam kebijakan**  

| Atribut subjek sertifikat | Variabel kebijakan sertifikat | 
| --- | --- | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/use-policy-variables.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/use-policy-variables.html)  | 

## Menggunakan atribut nama alternatif Penerbit sertifikat sebagai variabel kebijakan sertifikat
<a name="issuer-alternate-name-attributes-policy"></a>

Tabel berikut memberikan rincian tentang bagaimana atribut nama alternatif penerbit sertifikat akan diisi dalam kebijakan. AWS IoT Core 


**Atribut nama alternatif penerbit yang akan diisi dalam kebijakan**  

| Nama Alternatif Penerbit X509v3 | Atribut dalam kebijakan | 
| --- | --- | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/use-policy-variables.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/use-policy-variables.html)  | 

## Menggunakan atribut nama alternatif subjek sertifikat sebagai variabel kebijakan sertifikat
<a name="subject-alternate-name-attributes-policy"></a>

Tabel berikut memberikan rincian tentang bagaimana atribut nama alternatif subjek sertifikat akan diisi dalam AWS IoT Core kebijakan.


**Atribut nama alternatif subjek yang akan diisi dalam kebijakan**  

| X509v3 Nama Alternatif Subjek | Atribut dalam kebijakan | 
| --- | --- | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/use-policy-variables.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/use-policy-variables.html)  | 

## Menggunakan atribut sertifikat lain sebagai variabel kebijakan sertifikat
<a name="other-attributes-policy"></a>

Tabel berikut memberikan rincian tentang bagaimana atribut sertifikat lainnya akan diisi dalam AWS IoT Core kebijakan.


**Atribut lain yang akan diisi dalam kebijakan**  

| Atribut sertifikat lainnya | Variabel kebijakan sertifikat | 
| --- | --- | 
|  `Serial Number: 92:12:85:cb:b7:a5:e0:86`  |  `iot:Certificate.SerialNumber = 10525622389124227206`  | 

## X.509 Keterbatasan variabel kebijakan sertifikat
<a name="policy-limits"></a>

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` menjadi `Amazon Web Service O\=Amazon.com Inc. L\=Seattle ST\=Washington C\=US`.

## Contoh kebijakan menggunakan variabel kebijakan sertifikat
<a name="example-attributes-policy"></a>

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](https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_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](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_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"
				}
			}
		}
	]
}
```