> For the complete documentation index, see [llms.txt](https://cortex-docs.paloaltonetworks.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cortex-docs.paloaltonetworks.com/appsec-rules/iac-security/storage/appsec-aws-270.md).

# The Connect Instance S3 Storage Configuration utilizes Customer Managed Key. misconfiguration detect

## Rule Details

|                        |                           |
| ---------------------- | ------------------------- |
| Cortex AppSec Rule ID  | APPSEC\_AWS\_270          |
| Category - Subcategory | Storage - Encryption      |
| Provider               | AWS                       |
| Severity               | HIGH                      |
| Framework              | Terraform, Terraform Plan |

## Impact

This rule checks whether an Amazon Connect instance uses a Customer Master Key (CMK) for its S3 storage configuration. It underscores the importance of encrypting data at rest to prevent unauthorized access to sensitive information. The use of a CMK allows more granular control over the cryptographic keys, including the ability to create, rotate, disable, and define access permissions and usage. Thus, it significantly enhances the data security posture. If the rule check fails, it indicates that the Amazon Connect instance's S3 storage is either not encrypted or using default encryption, which presents a potential security risk.

## How to Fix

*Resource:* aws\_connect\_instance\_storage\_config

* *Arguments:* storage\_config.s3\_config.encryption\_config.key\_id

## You should configure the 'key\_id' service to use AWS Key Management Service (AWS KMS), this will allow control over who can use the master key and decrypt messages. \[source,go]

resource "aws\_connect\_instance\_storage\_config" "pass" { instance\_id = aws\_connect\_instance.pass.id resource\_type = "CHAT\_TRANSCRIPTS"

storage\_config { s3\_config { bucket\_name = aws\_s3\_bucket.pass.id bucket\_prefix = "pass"

encryption\_config { encryption\_type = "KMS"

* key\_id = aws\_kms\_key.example.arn } } storage\_type = "S3" } }

***


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://cortex-docs.paloaltonetworks.com/appsec-rules/iac-security/storage/appsec-aws-270.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
