> 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/public-exposure/appsec-aws-291.md).

# MSK nodes are not private misconfiguration detected in code

## Rule Details

|                        |                                           |
| ---------------------- | ----------------------------------------- |
| Cortex AppSec Rule ID  | APPSEC\_AWS\_291                          |
| Category - Subcategory | Public Exposure - VPC VCN VNet            |
| Provider               | AWS                                       |
| Severity               | HIGH                                      |
| Framework              | CloudFormation, Terraform, Terraform Plan |

## Impact

This rule is checking if Managed Stream for Kafka (MSK) nodes are set to private in AWS. The rule falls under the networking category. MSK nodes should be private for enhanced security and data protection. If these nodes are set to public, it increases the risk of unauthorized access and potential data breaches, as it allows anyone on the internet to interact with these nodes. Therefore, this rule is designed to ensure that your MSK nodes are not publicly accessible, prioritizing your data security.

## How to Fix

To fix this issue, you should ensure that your MSK cluster configuration does not include public access. Below is an example of how to set this property in a CloudFormation configuration:

## Example: \[source,go]

{ "Resources": { "MyMSKCluster": { "Type": "AWS::MSK::Cluster", "Properties": { "ClusterName": "example-cluster", "KafkaVersion": "2.6.0", "NumberOfBrokerNodes": 3, "BrokerNodeGroupInfo": { "InstanceType": "kafka.m5.large", "ConnectivityInfo": { "PublicAccess": {

* "Type": "DISABLED" } } } } } } }

***

Resources: MyMSKCluster: Type: AWS::MSK::Cluster Properties: ClusterName: "example-cluster" KafkaVersion: "2.6.0" NumberOfBrokerNodes: 3 BrokerNodeGroupInfo: InstanceType: "kafka.m5.large" ConnectivityInfo: PublicAccess:

* Type: "DISABLED"

***


---

# 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/public-exposure/appsec-aws-291.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.
