You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[Cross-account access](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) for AWS IAM roles is not currently supported.
74
+
75
+
</Note>
76
+
77
+
This feature requires a self-managed Boundary [worker](/boundary/docs/install-boundary/configure-workers).
78
+
79
+
To set up a dynamic host catalog using an AWS role, a self-managed worker must assume the role. You must assign the role to the self-managed worker AWS instance, and then supply a worker filter that matches the AWS worker when you set up the dynamic host catalog.
80
+
81
+
Perform the following steps to set up a host catalog using [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html):
82
+
83
+
1. Deploy a self-managed worker in your AWS account. The worker must be in the same VPC as the hosts you want to access using the dynamic host catalog. Consider [adding worker tags](/boundary/docs/concepts/filtering/worker-tags) to make it easier to route traffic through it using a worker filter later on.
84
+
85
+
1. Create an IAM role with the `AmazonEC2ReadOnlyAccess` policy attached. This policy should match the following:
86
+
87
+
```json
88
+
{
89
+
"Version": "2012-10-17",
90
+
"Statement": [
91
+
{
92
+
"Effect": "Allow",
93
+
"Action": [
94
+
"ec2:Describe*",
95
+
"ec2:GetSecurityGroupsForVpc"
96
+
],
97
+
"Resource": "*"
98
+
},
99
+
{
100
+
"Effect": "Allow",
101
+
"Action": "elasticloadbalancing:Describe*",
102
+
"Resource": "*"
103
+
},
104
+
{
105
+
"Effect": "Allow",
106
+
"Action": [
107
+
"cloudwatch:ListMetrics",
108
+
"cloudwatch:GetMetricStatistics",
109
+
"cloudwatch:Describe*"
110
+
],
111
+
"Resource": "*"
112
+
},
113
+
{
114
+
"Effect": "Allow",
115
+
"Action": "autoscaling:Describe*",
116
+
"Resource": "*"
117
+
}
118
+
]
119
+
}
120
+
```
121
+
122
+
Refer to the AWS [Create a role](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html) documentation to learn more.
123
+
124
+
1. Attach the role to the IAM instance configured as your self-managed worker. Follow the AWS [Attach an IAM role to an instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/attach-iam-role.html) to learn more.
125
+
126
+
1. Continue to the next step to set up the dynamic host catalog. You must add a worker tag when setting up the host catalog to route traffic through the worker that is assuming the role.
127
+
128
+
</Tab>
129
+
</Tabs>
130
+
16
131
Complete the following steps to create a dynamic host catalog for AWS:
17
132
18
133
<Tabs>
@@ -34,21 +149,21 @@ Complete the following steps to create a dynamic host catalog for AWS:
34
149
-**Use Assume Role (Dynamic Credentials)**: Authenticates to the host catalog using credentials that AWS `AssumeRole` generates.
35
150
36
151
<Tabs>
37
-
<Tabheading="Static credentials">
152
+
<Tabheading="Static credentials"group="static">
38
153
39
154
-**Access Key ID**: (Required) The access key ID for the IAM user to use with this host catalog.
40
155
-**Secret Access Key**: (Required) The secret access key for the IAM user to use with this host catalog.
41
156
-**Worker Filter**: (Optional) An optional filter to route requests to a designated worker.
42
157
43
158
</Tab>
44
-
<Tabheading="Dynamic credentials">
159
+
<Tabheading="Dynamic credentials"group="dynamic">
45
160
46
161
-**Role ARN**: (Required) - The AWS role ARN to use for `AssumeRole` authentication.
47
162
If you provide a `role_arn` value, you must also set `disable_credential_rotation` to `true`.
48
163
-**Role external ID**: (Optional) - The external ID for the `AssumeRole` provider.
49
164
-**Role session name**: (Optional) - The session name for the `AssumeRole` provider.
50
165
-**Role tags**: (Optional) - The key-value pair tags for the `AssumeRole` provider.
51
-
-**Worker Filter**: (Optional) - An optional filter to route requests to a designated worker.
166
+
-**Worker Filter**: (Optional) - An optional filter to route requests to a designated worker. The filter should match the worker assigned the IAM role.
52
167
-**Disable credential rotation**: - When enabled, Boundary does not rotate the credentials with AWS automatically.
53
168
Credential rotation is automatically disabled when you use dynamic credentials.
54
169
@@ -63,7 +178,7 @@ Complete the following steps to create a dynamic host catalog for AWS:
63
178
The required fields for creating a dynamic host catalog depend on whether you configure static or dynamic credentials.
64
179
65
180
<Tabs>
66
-
<Tabheading="Static credentials">
181
+
<Tabheading="Static credentials"group="static">
67
182
68
183
1. Log in to Boundary.
69
184
1. Use the following command to create a dynamic host catalog for AWS using static credentials:
@@ -94,7 +209,7 @@ The required fields for creating a dynamic host catalog depend on whether you co
94
209
95
210
</Tab>
96
211
97
-
<Tabheading="Dynamic credentials">
212
+
<Tabheading="Dynamic credentials"group="dynamic">
98
213
99
214
1. Log in to Boundary.
100
215
1. Use the following command to create a dynamic host catalog using dynamic credentials:
@@ -108,7 +223,8 @@ The required fields for creating a dynamic host catalog depend on whether you co
The `scope-id` and `plugin-name` fields are required when you create a dynamic host catalog.
@@ -122,6 +238,7 @@ The required fields for creating a dynamic host catalog depend on whether you co
122
238
-`role_external_id`: The external ID that you configured for the `AssumeRole` provider.
123
239
-`role_session_name`: The session name that you configured for the `AssumeRole` provider.
124
240
-`role_tags`: The key-value pair tags that you configured for the `AssumeRole` provider.
241
+
-`worker-filter` A boolean expression to filter which workers can handle dynamic host catalog commands for this host catalog. This should match a valid filter expression for the self-managed worker deployed in AWS. Refer to worker [Filter examples](/boundary/docs/concepts/filtering/worker-tags#filter-workers-using-tags) to learn more.
125
242
126
243
Refer to [the domain model documentation](/boundary/docs/concepts/domain-model/host-catalogs) for additional fields that you can use when you create host catalogs.
127
244
@@ -137,16 +254,16 @@ The required fields for creating a dynamic host catalog depend on whether you co
137
254
Refer to the [Boundary Terraform provider documentation](https://registry.terraform.io/providers/hashicorp/boundary/latest/docs) to learn about the requirements for the following example attributes.
# recommended to pass in aws secrets using a file() or using environment variables
152
269
attributes_json = jsonencode({
@@ -170,7 +287,7 @@ Replace the values in the configuration with the following required AWS secrets
170
287
Refer to [the domain model documentation](/boundary/docs/concepts/domain-model/host-catalogs) for additional fields that you can use when you create host catalogs.
171
288
172
289
</Tab>
173
-
<Tabheading="Dynamic credentials">
290
+
<Tabheading="Dynamic credentials"group="dynamic">
174
291
175
292
Apply the following Terraform policy:
176
293
@@ -180,6 +297,7 @@ Apply the following Terraform policy:
180
297
description = "AWS Host Catalog"
181
298
scope_id = boundary_scope.project.id
182
299
plugin_name = "aws"
300
+
worker_filter = "\"aws\" in \"/tags/type\""
183
301
184
302
attributes_json = jsonencode({
185
303
"region" = "eu-west-2",
@@ -196,6 +314,7 @@ The `scope_id` and `plugin_name` fields are required when you create a dynamic h
196
314
197
315
Replace the values in the configuration with the following required AWS secrets and any attributes you want to associate with the host catalog:
198
316
317
+
-`worker_filter`: A boolean expression to filter which workers can handle dynamic host catalog commands for this host catalog. This should match a valid filter expression for the self-managed worker deployed in AWS. Refer to worker [Filter examples](/boundary/docs/concepts/filtering/worker-tags#filter-workers-using-tags) to learn more.
199
318
-`disable_credential_rotation`: When set to `true`, Boundary does not rotate the credentials with AWS automatically.
200
319
You must disable credential rotation to use dynamic credentials.
201
320
-`region`: The region to configure the host catalog for. All host sets in this catalog are configured for this region.
@@ -213,8 +332,8 @@ Refer to [the domain model documentation](/boundary/docs/concepts/domain-model/h
213
332
</Tabs>
214
333
215
334
## Create a host set to connect with AWS
216
-
[Host sets](/boundary/docs/concepts/domain-model/host-sets) specify which AWS
217
-
filters should be used to identify the discovered hosts that should be added as members.
335
+
336
+
[Host sets](/boundary/docs/concepts/domain-model/host-sets) specify which AWS filters should be used to identify the discovered hosts that should be added as members.
218
337
219
338
Complete the following steps to create a host set:
0 commit comments