

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

# Mendeteksi penerapan dan konfigurasi Lambda yang tidak sesuai dengan AWS Config
<a name="governance-config-detection"></a>

Selain evaluasi pro [ aktif](governance-config.md), Anda juga AWS Config dapat mendeteksi penerapan sumber daya dan konfigurasi secara reaktif yang tidak sesuai dengan kebijakan tata kelola Anda. Ini penting karena kebijakan tata kelola berkembang seiring organisasi Anda mempelajari dan menerapkan praktik terbaik baru.

Pertimbangkan skenario di mana Anda menetapkan kebijakan baru saat menerapkan atau memperbarui fungsi Lambda: Semua fungsi Lambda harus selalu menggunakan versi lapisan Lambda tertentu yang disetujui. Anda dapat mengonfigurasi AWS Config untuk memantau fungsi baru atau yang diperbarui untuk konfigurasi lapisan. Jika AWS Config mendeteksi fungsi yang tidak menggunakan versi lapisan yang disetujui, fungsi tersebut ditandai sebagai sumber daya yang tidak sesuai.

Anda dapat secara opsional AWS Config mengonfigurasi untuk memperbaiki sumber daya secara otomatis dengan menentukan tindakan remediasi menggunakan dokumen AWS Systems Manager otomatisasi. Misalnya, Anda dapat menulis dokumen otomatisasi dalam Python menggunakan AWS SDK for Python (Boto3), yang memperbarui fungsi yang tidak sesuai untuk menunjuk ke versi lapisan yang disetujui. Dengan demikian, AWS Config berfungsi sebagai detektif dan kontrol korektif, mengotomatiskan manajemen kepatuhan.

Mari kita uraikan proses ini menjadi tiga fase implementasi penting:

 ![The three implementation phases are identify, notify, and deploy remediation.](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/governance-config-detective-1.png) 

### Tahap 1: Identifikasi sumber daya akses
<a name="governance-config-detective-identify"></a>

Mulailah dengan mengaktifkan AWS Config di seluruh akun Anda dan mengonfigurasinya untuk merekam fungsi AWS Lambda. Hal ini memungkinkan AWS Config untuk mengamati kapan fungsi Lambda dibuat atau diperbarui. Anda kemudian dapat mengonfigurasi aturan kebijakan [ khusus ](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_develop-rules_cfn-guard.html) untuk memeriksa pelanggaran kebijakan tertentu, yang menggunakan AWS CloudFormation Guard sintaks. Aturan penjaga mengambil bentuk umum berikut:

```
rule name when condition { assertion }
```

Di bawah ini adalah contoh aturan yang memeriksa untuk memastikan bahwa lapisan tidak disetel ke versi lapisan lama:

```
rule desiredlayer when configuration.layers !empty {
    some configuration.layers[*].arn != CONFIG_RULE_PARAMETERS.OldLayerArn
}
```

Mari kita pahami sintaks aturan dan struktur:
+ **Nama aturan: ** Nama aturan dalam contoh yang disediakan adalah`desiredlayer`.
+ **Kondisi: Klausul ** ini menentukan kondisi di mana aturan harus diperiksa. Dalam contoh yang diberikan, kondisinya adalah`configuration.layers !empty`. Ini berarti sumber daya harus dievaluasi hanya ketika `layers` properti dalam konfigurasi tidak kosong.
+ **Pernyataan: ** Setelah `when` klausa, pernyataan menentukan apa yang diperiksa aturan. Pernyataan `some configuration.layers[*].arn != CONFIG_RULE_PARAMETERS.OldLayerArn` memeriksa apakah salah satu ARN lapisan Lambda tidak cocok dengan nilainya. `OldLayerArn` Jika mereka tidak cocok, pernyataan itu benar dan aturan berlalu; jika tidak, itu gagal.

`CONFIG_RULE_PARAMETERS`adalah seperangkat parameter khusus yang dikonfigurasi dengan AWS Config aturan. Dalam hal ini, `OldLayerArn` adalah parameter di dalam`CONFIG_RULE_PARAMETERS`. Hal ini memungkinkan pengguna untuk memberikan nilai ARN tertentu yang mereka anggap lama atau usang, dan kemudian aturan memeriksa apakah ada fungsi Lambda yang menggunakan ARN lama ini.

### Tahap 2: Visualisasikan dan desain
<a name="governance-config-detective-visualize"></a>

AWS Config mengumpulkan data konfigurasi dan menyimpan data tersebut di bucket Amazon Simple Storage Service (Amazon S3). Anda dapat menggunakan [ Amazon Athena ](https://aws.amazon.com/athena/) untuk menanyakan data ini langsung dari bucket S3 Anda. Dengan Athena, Anda dapat mengumpulkan data ini di tingkat organisasi, menghasilkan tampilan holistik konfigurasi sumber daya Anda di semua akun Anda. Untuk mengatur agregasi data konfigurasi sumber daya, lihat Mem [ visualisasikan AWS Config data menggunakan Athena dan Amazon Quick ](https://aws.amazon.com/blogs/mt/visualizing-aws-config-data-using-amazon-athena-and-amazon-quicksight/) di blog AWS Cloud Operations and Management.

Berikut ini adalah contoh kueri Athena untuk mengidentifikasi semua fungsi Lambda menggunakan lapisan tertentu ARN:

```
WITH unnested AS (
    SELECT
      item.awsaccountid AS account_id,
      item.awsregion AS region,
      item.configuration AS lambda_configuration,
      item.resourceid AS resourceid,
      item.resourcename AS resourcename,
      item.configuration AS configuration,
      json_parse(item.configuration) AS lambda_json
    FROM
      default.aws_config_configuration_snapshot,
      UNNEST(configurationitems) as t(item)
    WHERE
      "dt" = 'latest'
      AND item.resourcetype = 'AWS::Lambda::Function'
  )
  
  SELECT DISTINCT
    region as Region,
    resourcename as FunctionName,
    json_extract_scalar(lambda_json, '$.memorySize') AS memory_size,
    json_extract_scalar(lambda_json, '$.timeout') AS timeout,
    json_extract_scalar(lambda_json, '$.version') AS version
  FROM
    unnested
  WHERE
    lambda_configuration LIKE '%arn:aws:lambda:us-east-1:111122223333:layer:AnyGovernanceLayer:24%'
```

Berikut adalah hasil dari kueri:

 ![Query results in Athena console.](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/governance-config-detective-2.png) 

Dengan AWS Config data yang dikumpulkan di seluruh organisasi, Anda kemudian dapat membuat dasbor menggunakan [ Amazon Quick](https://aws.amazon.com/quicksight/). Dengan mengimpor hasil Athena Anda ke Quick, Anda dapat memvisualisasikan seberapa baik fungsi Lambda Anda mematuhi aturan versi lapisan. Dasbor ini dapat menyoroti sumber daya yang sesuai dan tidak sesuai, yang membantu Anda menentukan kebijakan penegakan hukum Anda, seperti yang diuraikan di bagian [Fase 3: Menerapkan dan menegakkan](#governance-config-detective-implement) berikutnya. Gambar berikut adalah contoh dasbor yang melaporkan distribusi versi lapisan yang diterapkan pada fungsi dalam organisasi.

 ![Example Quick dashboard shows distribution of layer versions in Lambda functions.](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/governance-config-detective-3.png) 

### Fase 3: Menerapkan dan menegakkan
<a name="governance-config-detective-implement"></a>

Anda sekarang dapat secara opsional memasangkan aturan versi lapisan yang Anda buat di [ fase 1 ](#governance-config-detective-identify) dengan tindakan remediasi melalui dokumen otomatisasi Manajer Sistem, yang Anda buat sebagai skrip Python yang ditulis dengan AWS SDK for Python (Boto3). Skrip memanggil tindakan [ UpdateFunctionConfiguration ](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateFunctionConfiguration.html) API untuk setiap fungsi Lambda, memperbarui konfigurasi fungsi dengan layer baru ARN. Atau, Anda dapat meminta skrip mengirimkan permintaan tarik ke repositori kode untuk memperbarui lapisan ARN. Dengan cara ini penerapan kode masa depan juga diperbarui dengan lapisan ARN yang benar.