Skip to content

Commit 0a0b8fa

Browse files
author
Adam kafka
committed
Add details for utilizing IAM Roles Anywhere to README
Signed-off-by: Adam Kafka <[email protected]>
1 parent c2341dc commit 0a0b8fa

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed

README.md

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,44 @@ 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+
# Can use image from https://github.com/aws/rolesanywhere-credential-helper/pull/127 after it is merged in
125+
image: "rolesanywhere-credential-helper"
126+
command: ["aws_signing_helper"]
127+
args:
128+
- "serve"
129+
- "--private-key"
130+
- "/etc/certs/tls.key"
131+
- "--certificate"
132+
- "/etc/certs/tls.key"
133+
- "--role-arn"
134+
- "your-role-arn"
135+
- "--profile-arn"
136+
- "your-profile-arn"
137+
- "--trust-anchor-arn"
138+
- "your-trust-anchor-arn"
139+
volumeMounts:
140+
- name: client-certs
141+
mountPath: /etc/certs/
142+
readOnly: true
143+
volumes:
144+
- name: client-certs
145+
secret:
146+
secretName: client-certs
147+
```
148+
111149
## Supported workflows
112150

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

123162
* AWS Private CA features:
124163
* [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)