

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

# Bekerja dengan kunci menggunakan AWS KMS API dan AWS SDK untuk PHP Versi 3
<a name="kms-example-keys"></a>

Sumber daya utama di AWS Key Management Service (AWS KMS) adalah [AWS KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys). Anda dapat menggunakan kunci KMS untuk mengenkripsi data Anda.

Contoh berikut menunjukkan cara:
+ Buat kunci KMS pelanggan menggunakan [CreateKey](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#createkey).
+ Hasilkan kunci data menggunakan [GenerateDataKey](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#generatedatakey).
+ Lihat tombol KMS menggunakan [DescribeKey](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#describekey).
+ Dapatkan kunci IDs dan kunci ARNS dari tombol KMS menggunakan. [ListKeys](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#listkeys)
+ Aktifkan tombol KMS menggunakan [EnableKey](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#enablekey).
+ Nonaktifkan tombol KMS menggunakan [DisableKey](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#disablekey).

Semua kode contoh untuk AWS SDK untuk PHP tersedia [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code).

## Kredensial
<a name="examplecredentials"></a>

Sebelum menjalankan kode contoh, konfigurasikan AWS kredensil Anda, seperti yang dijelaskan dalam. [Mengautentikasi dengan AWS menggunakan AWS SDK untuk PHP Versi 3](credentials.md) Kemudian impor AWS SDK untuk PHP, seperti yang dijelaskan dalam[Menginstal AWS SDK untuk PHP Versi 3](getting-started_installation.md).

Untuk informasi selengkapnya tentang menggunakan AWS Key Management Service (AWS KMS), lihat [Panduan AWS KMS Pengembang](https://docs.aws.amazon.com/kms/latest/developerguide/).

## Buat kunci KMS
<a name="create-a-cmk"></a>

Untuk membuat [kunci KMS](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys), gunakan [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)operasi.

 **Impor** 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
```

 **Kode Sampel** 

```
$KmsClient = new Aws\Kms\KmsClient([
    'profile' => 'default',
    'version' => '2014-11-01',
    'region' => 'us-east-2'
]);

//Creates a customer master key (CMK) in the caller's AWS account.
$desc = "Key for protecting critical data";

try {
    $result = $KmsClient->createKey([
        'Description' => $desc,
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    echo $e->getMessage();
    echo "\n";
}
```

## Menghasilkan kunci data
<a name="generate-a-data-key"></a>

Untuk menghasilkan kunci enkripsi data, gunakan [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)operasi. Operasi ini mengembalikan plaintext dan salinan terenkripsi dari kunci data yang dibuatnya. Tentukan AWS KMS key di bawah mana untuk menghasilkan kunci data.

 **Impor** 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
```

 **Kode Sampel** 

```
$KmsClient = new Aws\Kms\KmsClient([
    'profile' => 'default',
    'version' => '2014-11-01',
    'region' => 'us-east-2'
]);

$keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab';
$keySpec = 'AES_256';

try {
    $result = $KmsClient->generateDataKey([
        'KeyId' => $keyId,
        'KeySpec' => $keySpec,
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    echo $e->getMessage();
    echo "\n";
}
```

## Lihat kunci KMS
<a name="view-a-cmk"></a>

Untuk mendapatkan informasi terperinci tentang kunci KMS, termasuk Amazon Resource Name (ARN) kunci KMS dan [status kunci](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html), gunakan operasi. [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)

 `DescribeKey`tidak mendapatkan alias. Untuk mendapatkan alias, gunakan [ListAliases](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListKeys.html)operasi.

 **Impor** 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
```

 **Kode Sampel** 

```
$KmsClient = new Aws\Kms\KmsClient([
    'profile' => 'default',
    'version' => '2014-11-01',
    'region' => 'us-east-2'
]);

$keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab';

try {
    $result = $KmsClient->describeKey([
        'KeyId' => $keyId,
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    echo $e->getMessage();
    echo "\n";
}
```

## Dapatkan ID kunci dan kunci kunci ARNs KMS
<a name="get-the-key-id-and-key-arns-of-a-cmk"></a>

Untuk mendapatkan ID dan ARN dari kunci KMS, gunakan operasi. [ListAliases](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListKeys.html)

 **Impor** 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
```

 **Kode Sampel** 

```
$KmsClient = new Aws\Kms\KmsClient([
    'profile' => 'default',
    'version' => '2014-11-01',
    'region' => 'us-east-2'
]);

$limit = 10;

try {
    $result = $KmsClient->listKeys([
        'Limit' => $limit,
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    echo $e->getMessage();
    echo "\n";
}
```

## Aktifkan kunci KMS
<a name="enable-a-cmk"></a>

Untuk mengaktifkan kunci KMS yang dinonaktifkan, gunakan [EnableKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_EnableKey.html)operasi.

 **Impor** 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
```

 **Kode Sampel** 

```
$KmsClient = new Aws\Kms\KmsClient([
    'profile' => 'default',
    'version' => '2014-11-01',
    'region' => 'us-east-2'
]);

$keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab';

try {
    $result = $KmsClient->enableKey([
        'KeyId' => $keyId,
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    echo $e->getMessage();
    echo "\n";
}
```

## Nonaktifkan tombol KMS
<a name="disable-a-cmk"></a>

Untuk menonaktifkan kunci KMS, gunakan [DisableKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DisableKey.html)operasi. Menonaktifkan kunci KMS mencegahnya digunakan.

 **Impor** 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
```

 **Kode Sampel** 

```
$KmsClient = new Aws\Kms\KmsClient([
    'profile' => 'default',
    'version' => '2014-11-01',
    'region' => 'us-east-2'
]);

$keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab';

try {
    $result = $KmsClient->disableKey([
        'KeyId' => $keyId,
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    echo $e->getMessage();
    echo "\n";
}
```