Skip to content

Commit d422b8d

Browse files
authored
Merge pull request #1771 from segmentio/marin/aws-updates
Add documentation about using multiple externalIds to AWS destination docs
2 parents 7f7bcc8 + 604dcdd commit d422b8d

File tree

4 files changed

+28
-20
lines changed

4 files changed

+28
-20
lines changed

src/connections/destinations/catalog/amazon-kinesis-firehose/index.md

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ To get started:
4040
1. Follow [these instructions](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html#roles-creatingrole-user-console) to create an IAM role to allow Segment permission to write to your Kinesis Firehose Stream.
4141
2. When prompted to enter an Account ID, enter `595280932656`.
4242
3. Select the checkbox to enable **Require External ID**.
43-
4. Enter your Segment Source ID as the **External ID**. This can be found in Segment by navigating to **Connections > Sources** and choosing the source you want to connect to your Kinesis Firehose destination. Click the **Settings** tab and choose **API Keys**.
43+
4. Enter your Segment Source ID as the **External ID**. This can be found in Segment by navigating to **Connections > Sources** and choosing the source you want to connect to your Kinesis Firehose destination. Click the **Settings** tab and choose **API Keys**.
4444
- **Note:** If you have multiple sources using Kinesis, enter one of their source IDs here for now and then follow the procedure outlined in the [Multiple Sources](#best-practices) section at the bottom of this doc once you’ve completed this step and saved your IAM role.
4545
5. When adding permissions to your new role, find the policy you created in step 2 and attach it.
4646

@@ -180,17 +180,17 @@ To attach multiple sources to your IAM role:
180180
}
181181
```
182182

183-
#### Use a single secret ID
183+
#### Use Secret ID
184184

185-
If you have many sources using Kinesis that it's impractical to attach all of their IDs to your IAM role, you can set a single ID to use instead.
185+
If you have many sources using Kinesis that it's impractical to attach all of their IDs to your IAM role, you can instead opt to set a Secret ID.
186186

187-
To set this value for a single Secret ID:
187+
To set this value for a Secret ID:
188188
1. Go to the Kinesis Firehose destination settings from each of your Segment sources.
189189
2. Click **Secret ID** and enter your Workspace ID.
190-
* **NOTE:** For security purposes, Segment recommends you to use your Segment Workspace ID as your Secret ID. If you’re using a Secret ID different from your Workspace ID, you're susceptible to attacks. You can find your Workspace ID by going to: **Settings > Workspace Settings > ID** from the Segment dashboard.
190+
* **NOTE:** For security purposes, Segment recommends you to use your Segment Workspace ID as your Secret ID. If you’re using a Secret ID different from your Workspace ID, please change it to make your account more secure. You can find your Workspace ID by going to: **Settings > Workspace Settings > ID** from the Segment dashboard.
191191
3. Once all of your sources are updated to use this value, find the IAM role you created for this destination in the AWS Console in **Services > IAM > Roles**.
192192
4. Select the role and navigate to the **Trust Relationships** tab.
193-
5. Click **Edit trust relationship**. You should see a snippet that looks something that looks like this:
193+
5. Click **Edit trust relationship**. You should see a snippet that looks something like this:
194194

195195
```json
196196
{
@@ -211,4 +211,8 @@ To set this value for a single Secret ID:
211211
]
212212
}
213213
```
214-
6. Replace the value of `sts:ExternalId` ( "YOUR_SEGMENT_SOURCE_ID") with the Secret ID / Workspace ID value from the previous step.
214+
6. Replace the value of `sts:ExternalId` ( "YOUR_SEGMENT_SOURCE_ID") with the Secret ID value from the previous step. In the case of requiring the use of multiple secretIds, replace the `sts:ExternalId` setting above with:
215+
216+
```
217+
"sts:ExternalId": ["A_SECRET_ID", "ANOTHER_SECRET_ID"]
218+
```

src/connections/destinations/catalog/amazon-kinesis/index.md

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ To get started:
4848
4. Create a new Kinesis destination.
4949
1. In the Segment source that you want to connect to your Kinesis destination, click **Add Destination**. Search and select the **Amazon Kinesis** destination.
5050
2. Enter the **Role Address**, **Stream Region**, **Stream Name**, and **Secret ID**.
51-
* **NOTE:** For security purposes, Segment recommends you to use your Workspace ID as your Secret ID. If you’re using a Secret ID different from your Workspace ID, you’re susceptible to attacks. You can find your Workspace ID by going to: **Settings > Workspace Settings > ID**.
51+
* **NOTE:** For security purposes, Segment recommends you to use your Workspace ID as your Secret ID. If you’re using a Secret ID different from your Workspace ID, please change it to make your account more secure. You can find your Workspace ID by going to: **Settings > Workspace Settings > ID**.
5252

5353
## Page
5454
If you're not familiar with the Segment Specs, take a look to understand what the [Page method](https://segment.com/docs/connections/spec/page/) does. An example call would look like:
@@ -213,11 +213,11 @@ The Kinesis destination defaults to use PutRecords. A previous version of the IA
213213
```
214214
After you update the IAM policy, Segment systems default to use PutRecords for more efficient data transmission. This is a zero-downtime change and doesn't impact your data other than increasing the deliverability success rate.
215215

216-
### Use a single secret ID
217-
If you have many sources using Kinesis that it's impractical to attach all of their IDs to your IAM role, you can instead opt to set a single ID to use. To set this value:
216+
### Use secret ID
217+
If you have many sources using Kinesis that it's impractical to attach all of their IDs to your IAM role, you can instead opt to set a secret ID. To set this value:
218218
1. Go to **Connections > Destinations > Amazon Kinesis** for each of your Segment sources.
219219
2. Click **Secret ID** and enter your Workspace ID.
220-
* **NOTE:** For security purposes, Segment recommends you to use your Workspace ID as your Secret ID. If you’re using a Secret ID different from your Workspace ID, you're susceptible to attacks. You can find your Workspace ID by going to: **Settings > Workspace Settings > ID**.
220+
* **NOTE:** For security purposes, Segment recommends you to use your Workspace ID as your Secret ID. If you’re using a Secret ID different from your Workspace ID, please change it to make your account more secure. You can find your Workspace ID by going to: **Settings > Workspace Settings > ID**.
221221
3. Once all of your sources have been updated to use this value, find the IAM role you created for this destination in the AWS Console in **Services > IAM > Roles**.
222222
4. Click on the role and navigate to the **Trust Relationships** tab.
223223
5. Click **Edit trust relationship**. You should see a snippet that looks something that looks like this:
@@ -241,4 +241,8 @@ If you have many sources using Kinesis that it's impractical to attach all of th
241241
]
242242
}
243243
```
244-
6. Replace the value of `sts:ExternalId` (`"YOUR_SEGMENT_SOURCE_ID"`) with your Secret ID.
244+
6. Replace the value of `sts:ExternalId` (`"YOUR_SEGMENT_SOURCE_ID"`) with your Secret ID. In the case of requiring the use of multiple secretIds, replace the `sts:ExternalId` setting above with:
245+
246+
```
247+
"sts:ExternalId": ["A_SECRET_ID", "ANOTHER_SECRET_ID"]
248+
```

src/connections/destinations/catalog/amazon-lambda/index.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ Using CloudFormation minimizes the setup steps needed, and is Segment's recommen
7777

7878
5. Give your stack a name.
7979
6. For the **ExternalId** parameter, enter the "External ID" setting in your Segment Lambda destination settings. This should be your **Workspace ID**.
80-
* **NOTE:** For security purposes, Segment recommends you to use your Workspace ID as your External ID. If you’re currently using an External ID different from your Workspace ID, you’ll be susceptible to attacks. You can find your Workspace ID by going to: **Settings > Workspace Settings > ID**.
80+
* **NOTE:** For security purposes, Segment recommends you to use your Workspace ID as your External ID. If you’re currently using an External ID different from your Workspace ID, please change it to make your account more secure. You can find your Workspace ID by going to: **Settings > Workspace Settings > ID**.
8181
7. The **LambdaARN** parameter corresponds to the **Lambda** setting in your Segment Lambda destination settings.
8282

8383
![](images/CloudFormationStackDetails.png)
@@ -145,7 +145,7 @@ To create an IAM role:
145145

146146
![](images/LambdaTrustRelationship.png)
147147

148-
7. Copy and paste the following code into your trust relationship. You should replace `<your-source-id>` with either the Source ID of the attached Segment source (the default) or whatever custom external ID you set in your AWS Lambda destination settings.
148+
7. Copy and paste the following code into your trust relationship. You should replace `<your-source-id>` with either the Source ID of the attached Segment source (the default) or the External ID set in your AWS Lambda destination settings.
149149
* `arn:aws:iam::595280932656:root` refers to Segment's AWS Account, and is what allows Segment's Destination to access the role to invoke your Lambda.
150150

151151
> note ""
@@ -171,10 +171,10 @@ To create an IAM role:
171171
}
172172
```
173173

174-
If you have multiple Sources using this Role, replace the `sts:ExternalId` setting above with:
174+
If you have multiple Sources using this Role, or require the use of multiple External Ids, replace the `sts:ExternalId` setting above with:
175175

176176
```
177-
"sts:ExternalId": ["YOUR_SEGMENT_SOURCE_ID", "ANOTHER_SOURCE_ID", "A_THIRD_SOURCE_ID"]
177+
"sts:ExternalId": ["YOUR_SEGMENT_SOURCE_ID", "ANOTHER_SOURCE_ID", "AN_EXTERNAL_ID", "ANOTHER_EXTERNAL_ID"]
178178
```
179179

180180
### Configure Segment Lambda Destination

src/connections/destinations/catalog/amazon-personalize/index.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -694,7 +694,7 @@ To create an IAM role:
694694
> note ""
695695
> **NOTE:** Your Source ID can be found by navigating to **Settings > API Keys** from your Segment source homepage.
696696
>
697-
> If you're using an External ID, for security purposes, Segment recommends you to use your Segment Workspace ID as your External ID. If you use an External ID different from your Workspace ID, you’re susceptible to attacks. You can find your Workspace ID by going to: **Settings > Workspace Settings > ID** in the Segment dashboard.
697+
> If you're using an External ID, for security purposes, Segment recommends you to use your Segment Workspace ID as your External ID. If you use an External ID different from your Workspace ID, please change it to make your account more secure. You can find your Workspace ID by going to: **Settings > Workspace Settings > ID** in the Segment dashboard.
698698
699699
```json
700700
{
@@ -716,10 +716,10 @@ To create an IAM role:
716716
}
717717
```
718718

719-
If you have multiple Source's using this Role, replace the `sts:ExternalId` setting above with
719+
If you have multiple Sources using this Role, or require the use of multiple externalIds, replace the `sts:ExternalId` setting above with:
720720

721-
```json
722-
"sts:ExternalId": ["YOUR_SEGMENT_SOURCE_ID", "ANOTHER_SOURCE_ID", "A_THIRD_SOURCE_ID"]
721+
```
722+
"sts:ExternalId": ["YOUR_SEGMENT_SOURCE_ID", "ANOTHER_SOURCE_ID", "AN_EXTERNAL_ID", "ANOTHER_EXTERNAL_ID"]
723723
```
724724

725725
### Build a Lambda Function to Process Segment Events

0 commit comments

Comments
 (0)