github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/internal/adapters/cloudformation/aws/kinesis/stream.go (about)

     1  package kinesis
     2  
     3  import (
     4  	"github.com/khulnasoft-lab/defsec/pkg/providers/aws/kinesis"
     5  	"github.com/khulnasoft-lab/defsec/pkg/scanners/cloudformation/parser"
     6  	"github.com/khulnasoft-lab/defsec/pkg/types"
     7  )
     8  
     9  func getStreams(ctx parser.FileContext) (streams []kinesis.Stream) {
    10  
    11  	streamResources := ctx.GetResourcesByType("AWS::Kinesis::Stream")
    12  
    13  	for _, r := range streamResources {
    14  
    15  		stream := kinesis.Stream{
    16  			Metadata: r.Metadata(),
    17  			Encryption: kinesis.Encryption{
    18  				Metadata: r.Metadata(),
    19  				Type:     types.StringDefault("KMS", r.Metadata()),
    20  				KMSKeyID: types.StringDefault("", r.Metadata()),
    21  			},
    22  		}
    23  
    24  		if prop := r.GetProperty("StreamEncryption"); prop.IsNotNil() {
    25  			stream.Encryption = kinesis.Encryption{
    26  				Metadata: prop.Metadata(),
    27  				Type:     prop.GetStringProperty("EncryptionType", "KMS"),
    28  				KMSKeyID: prop.GetStringProperty("KeyId"),
    29  			}
    30  		}
    31  
    32  		streams = append(streams, stream)
    33  	}
    34  
    35  	return streams
    36  }