Skip to content
This repository was archived by the owner on Jul 16, 2024. It is now read-only.

Commit f56f50b

Browse files
authored
Merge pull request #655 from aws-samples/fix/restrict-imds
fix: improvement for managed nodegroup and karpenter provisioner
2 parents a4ecdfd + 49e50a7 commit f56f50b

8 files changed

+38
-1
lines changed

core/src/emr-eks-platform/emr-eks-cluster.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -579,7 +579,7 @@ export class EmrEksCluster extends TrackedConstruct {
579579
public addEmrEksNodegroup(id: string, props: EmrEksNodegroupOptions) {
580580

581581
if (this.isKarpenter) {
582-
throw new Error(`You can\'t use this method when the autoscaler is set to ${Autoscaler.KARPENTER}`);
582+
throw new Error(`You cannot use this method when the autoscaler is set to ${Autoscaler.KARPENTER}`);
583583
}
584584

585585
// Get the subnet from Properties or one private subnet for each AZ

core/src/emr-eks-platform/resources/k8s/karpenter-provisioner-config/critical-provisioner.yml

+5
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,11 @@ spec:
7373
kubernetes.io/cluster/{{cluster-name}}: owned
7474
tags:
7575
KarpenerProvisionerName: "critical"
76+
metadataOptions:
77+
httpEndpoint: enabled
78+
httpProtocolIPv6: disabled
79+
httpPutResponseHopLimit: 2
80+
httpTokens: required
7681
amiFamily: AL2
7782
userData: |
7883
MIME-Version: 1.0

core/src/emr-eks-platform/resources/k8s/karpenter-provisioner-config/notebook-driver-provisioner.yml

+5
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,11 @@ spec:
7171
amiFamily: AL2
7272
subnetSelector:
7373
aws-ids: {{subnet-id}}
74+
metadataOptions:
75+
httpEndpoint: enabled
76+
httpProtocolIPv6: disabled
77+
httpPutResponseHopLimit: 2
78+
httpTokens: required
7479
securityGroupSelector:
7580
kubernetes.io/cluster/{{cluster-name}}: owned
7681
tags:

core/src/emr-eks-platform/resources/k8s/karpenter-provisioner-config/notebook-executor-provisioner.yml

+5
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,11 @@ spec:
7474
amiFamily: AL2
7575
subnetSelector:
7676
aws-ids: {{subnet-id}}
77+
metadataOptions:
78+
httpEndpoint: enabled
79+
httpProtocolIPv6: disabled
80+
httpPutResponseHopLimit: 2
81+
httpTokens: required
7782
securityGroupSelector:
7883
kubernetes.io/cluster/{{cluster-name}}: owned
7984
tags:

core/src/emr-eks-platform/resources/k8s/karpenter-provisioner-config/shared-driver-provisioner.yml

+5
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,11 @@ spec:
6666
amiFamily: AL2
6767
subnetSelector:
6868
aws-ids: {{subnet-id}}
69+
metadataOptions:
70+
httpEndpoint: enabled
71+
httpProtocolIPv6: disabled
72+
httpPutResponseHopLimit: 2
73+
httpTokens: required
6974
securityGroupSelector:
7075
kubernetes.io/cluster/{{cluster-name}}: owned
7176
tags:

core/src/emr-eks-platform/resources/k8s/karpenter-provisioner-config/shared-executor-provisioner.yml

+5
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,11 @@ spec:
7171
amiFamily: AL2
7272
subnetSelector:
7373
aws-ids: {{subnet-id}}
74+
metadataOptions:
75+
httpEndpoint: enabled
76+
httpProtocolIPv6: disabled
77+
httpPutResponseHopLimit: 2
78+
httpTokens: required
7479
securityGroupSelector:
7580
kubernetes.io/cluster/{{cluster-name}}: owned
7681
tags:

core/src/emr-eks-platform/resources/k8s/karpenter-provisioner-config/tooling-provisioner.yml

+5
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,11 @@ spec:
6161
amiFamily: AL2
6262
subnetSelector:
6363
aws-ids: {{subnet-list}}
64+
metadataOptions:
65+
httpEndpoint: enabled
66+
httpProtocolIPv6: disabled
67+
httpPutResponseHopLimit: 2
68+
httpTokens: required
6469
securityGroupSelector:
6570
kubernetes.io/cluster/{{cluster-name}}: owned
6671
tags:

core/src/singleton-launch-template.ts

+7
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,15 @@ export class SingletonCfnLaunchTemplate extends CfnLaunchTemplate {
1515
const id = `${name}`;
1616
return stack.node.tryFindChild(id) as CfnLaunchTemplate || new CfnLaunchTemplate(stack, id, {
1717
launchTemplateName: name,
18+
1819
launchTemplateData: {
1920
userData: data,
21+
metadataOptions: {
22+
httpEndpoint: 'enabled',
23+
httpProtocolIpv6: 'disabled',
24+
httpPutResponseHopLimit: 2,
25+
httpTokens: 'required'
26+
}
2027
},
2128
});
2229
}

0 commit comments

Comments
 (0)