Skip to content

Commit f37f946

Browse files
Adam kafkabmsiegel
authored andcommitted
Add details for utilizing IAM Roles Anywhere to README
Signed-off-by: Adam Kafka <[email protected]> Signed-off-by: Brady Siegel <[email protected]>
1 parent fd13d6e commit f37f946

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

README.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,43 @@ Please note that if you are using [KIAM](https://github.com/uswitch/kiam) for au
108108

109109
There is a custom AWS authentication method we have coded into our plugin that allows a user to define a [Kubernetes secret](https://kubernetes.io/docs/concepts/configuration/secret/) with AWS Creds passed in, example [here](config/samples/secret.yaml). The user applies that file with their creds and then references the secret in their Issuer CRD when running the plugin, example [here](config/samples/awspcaclusterissuer_ec/_v1beta1_awspcaclusterissuer_ec.yaml#L8-L10).
110110

111+
#### IAM Roles Anywhere
112+
113+
For use cases where the AWS Private CA issuer needs to run outside of AWS, IAM Roles Anywhere can be used as an alternative to IAM Users.
114+
115+
The helm chart supports `extraContainers` which can be used to deploy the [aws_signing_helper](https://github.com/aws/rolesanywhere-credential-helper) in "serve" mode. Then, we can set `AWS_EC2_METADATA_SERVICE_ENDPOINT="http://127.0.0.1:9911"` on the `aws-privateca-issuer` itself.
116+
117+
A simplified example of what to set for your helm values is as follows:
118+
119+
```
120+
env:
121+
AWS_EC2_METADATA_SERVICE_ENDPOINT: "http://127.0.0.1:9911"
122+
extraContainers:
123+
- name: "rolesanywhere-credential-helper"
124+
image: "public.ecr.aws/rolesanywhere/credential-helper:latest"
125+
command: ["aws_signing_helper"]
126+
args:
127+
- "serve"
128+
- "--private-key"
129+
- "/etc/cert/tls.key"
130+
- "--certificate"
131+
- "/etc/cert/tls.crt"
132+
- "--role-arn"
133+
- "$ROLE_ARN"
134+
- "--profile-arn"
135+
- "$PROFILE_ARN"
136+
- "--trust-anchor-arn"
137+
- "$TRUST_ANCHOR_ARN"
138+
volumeMounts:
139+
- name: cert
140+
mountPath: /etc/cert/
141+
readOnly: true
142+
volumes:
143+
- name: cert
144+
secret:
145+
secretName: cert
146+
```
147+
111148
## Supported workflows
112149

113150
AWS Private Certificate Authority(PCA) Issuer Plugin supports the following integrations and use cases:
@@ -119,6 +156,7 @@ AWS Private Certificate Authority(PCA) Issuer Plugin supports the following inte
119156
* [IRSA](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html) - IAM roles for service accounts
120157
* [Kubernetes Secrets](#authentication)
121158
* [EC2 Instance Profiles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html)
159+
* [IAM Roles Anywhere](https://docs.aws.amazon.com/rolesanywhere/latest/userguide/introduction.html)
122160

123161
* AWS Private CA features:
124162
* [End-to-End TLS encryption on Amazon Elastic Kubernetes Service](https://aws.amazon.com/blogs/containers/setting-up-end-to-end-tls-encryption-on-amazon-eks-with-the-new-aws-load-balancer-controller/)(Amazon EKS).

0 commit comments

Comments
 (0)