@@ -513,6 +513,53 @@ export class Services extends Stack {
513
513
serviceAccountRoleArn : cwserviceaccount . roleArn ,
514
514
} ) ;
515
515
516
+ // IAM Role for Network Flow Monitor
517
+ const networkFlowMonitorRole = new iam . CfnRole ( this , 'NetworkFlowMonitorRole' , {
518
+ roleName : 'network-flow-monitor-demo-role' ,
519
+ assumeRolePolicyDocument : {
520
+ Version : '2012-10-17' ,
521
+ Statement : [
522
+ {
523
+ Effect : 'Allow' ,
524
+ Principal : {
525
+ Service : 'pods.eks.amazonaws.com' ,
526
+ } ,
527
+ Action : [
528
+ 'sts:AssumeRole' ,
529
+ 'sts:TagSession' ,
530
+ ] ,
531
+ } ,
532
+ ] ,
533
+ } ,
534
+ managedPolicyArns : [
535
+ 'arn:aws:iam::aws:policy/CloudWatchNetworkFlowMonitorAgentPublishPolicy' ,
536
+ ] ,
537
+ } ) ;
538
+
539
+ // Amazon EKS Pod Identity Agent Addon for Network Flow Monitor
540
+ const podIdentityAgentAddon = new eks . CfnAddon ( this , 'PodIdentityAgentAddon' , {
541
+ addonName : 'eks-pod-identity-agent' ,
542
+ addonVersion : 'v1.3.4-eksbuild.1' ,
543
+ clusterName : cluster . clusterName ,
544
+ resolveConflicts : 'OVERWRITE' ,
545
+ preserveOnDelete : false ,
546
+ } ) ;
547
+
548
+ // Amazon EKS AWS Network Flow Monitor Agent add-on
549
+ const networkFlowMonitoringAgentAddon = new eks . CfnAddon ( this , 'NetworkFlowMonitoringAgentAddon' , {
550
+ addonName : 'aws-network-flow-monitoring-agent' ,
551
+ addonVersion : 'v1.0.1-eksbuild.2' ,
552
+ clusterName : cluster . clusterName ,
553
+ resolveConflicts : 'OVERWRITE' ,
554
+ preserveOnDelete : false ,
555
+ podIdentityAssociations : [
556
+ {
557
+ roleArn : networkFlowMonitorRole . attrArn ,
558
+ serviceAccount : 'aws-network-flow-monitor-agent-service-account' ,
559
+ } ,
560
+ ] ,
561
+ } ) ;
562
+
516
563
const customWidgetResourceControllerPolicy = new iam . PolicyStatement ( {
517
564
effect : iam . Effect . ALLOW ,
518
565
actions : [
@@ -606,6 +653,7 @@ export class Services extends Stack {
606
653
607
654
this . createOuputs ( new Map ( Object . entries ( {
608
655
'CWServiceAccountArn' : cwserviceaccount . roleArn ,
656
+ 'NetworkFlowMonitorServiceAccountArn' : networkFlowMonitorRole . attrArn ,
609
657
'XRayServiceAccountArn' : xrayserviceaccount . roleArn ,
610
658
'OIDCProviderUrl' : cluster . clusterOpenIdConnectIssuerUrl ,
611
659
'OIDCProviderArn' : cluster . openIdConnectProvider . openIdConnectProviderArn ,
0 commit comments