Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

support external id in STS Assume Role calls #18901

Merged
merged 1 commit into from
May 21, 2024
Merged

support external id in STS Assume Role calls #18901

merged 1 commit into from
May 21, 2024

Conversation

edwardsb
Copy link
Contributor

@edwardsb edwardsb commented May 10, 2024

🔐 feat(security): add support for sts:ExternalId in AWS STS AssumeRole calls

add support for sts:ExternalId in AWS STS AssumeRole calls. This is a security feature that helps protect against the confused deputy problem. It is an optional unique identifier that can be used by the principal (Fleet) assuming the role to assert its identity.

📝 docs(fleet-server-configuration): add documentation for sts_external_id for AWS services

add documentation for the sts_external_id configuration option for Firehose, Kinesis, Lambda, SES, S3, and Packaging S3. This option is used for AWS STS External ID authentication, typically in conjunction with an STS role ARN to ensure that only the intended AWS account can assume the role.

Checklist for submitter

If some of the following don't apply, delete the relevant line.

  • Changes file added for user-visible changes in changes/, orbit/changes/ or ee/fleetd-chrome/changes.
    See Changes files for more information.
  • Manual QA for all new/changed functionality

closes #18898

I need to perform testing by setting up the ExternalID requirement in some AWS environment.

Copy link
Contributor

@rfairburn rfairburn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks great pending testing. Will approve upon successful test.

…e calls

add support for sts:ExternalId in AWS STS AssumeRole calls. This is a security feature that helps protect against the confused deputy problem. It is an optional unique identifier that can be used by the principal (Fleet) assuming the role to assert its identity.

📝 docs(fleet-server-configuration): add documentation for sts_external_id for AWS services

add documentation for the sts_external_id configuration option for Firehose, Kinesis, Lambda, SES, S3, and Packaging S3. This option is used for AWS STS External ID authentication, typically in conjunction with an STS role ARN to ensure that only the intended AWS account can assume the role.
@edwardsb
Copy link
Contributor Author

edwardsb commented May 15, 2024

module "firehose-logging" {
  source                = "../../../../fleet/terraform/addons/byo-firehose-logging-destination/firehose"
  firehose_results_name = "osquery_results"
  firehose_status_name  = "osquery_status"
  firehose_audit_name   = "fleet_audit"
  iam_role_arn          = "arn:aws:iam::<account_id>:role/terraform-20240515135556432200000001"
  sts_external_id       = "super_secret_external_id"
  region                = "us-east-2"
}

Works as expected with the changes to the code. I was able to configure Fleet to write to a firehose delivery stream in another account with STS assume role while providing STS External Id.

Copy link
Contributor

@mostlikelee mostlikelee left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@edwardsb edwardsb merged commit 677835e into main May 21, 2024
15 of 17 checks passed
@edwardsb edwardsb deleted the sts_external_id branch May 21, 2024 17:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

Allow for ExternalId when performing sts-assume-role
7 participants