-
Notifications
You must be signed in to change notification settings - Fork 128
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
DEVPROD-6193 Use IRSA to sign mciuploads bucket urls #8566
base: main
Are you sure you want to change the base?
Conversation
…s for the bucket as well
model/artifact/artifact_file.go
Outdated
catcher.ErrorfWhen(f.FileKey == "", "file key is required") | ||
|
||
if f.Bucket != "mciuploads" { | ||
catcher.ErrorfWhen(f.AwsKey == "", "aws key is required") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: capitalize AWS
Once approved, going to get an LGTM to add the corresponding field to production |
agent/command/s3_put.go
Outdated
@@ -125,7 +125,8 @@ type s3put struct { | |||
isPatchable bool | |||
isPatchOnly bool | |||
|
|||
bucket pail.Bucket | |||
bucket pail.Bucket | |||
devprodOwnedBuckets []string |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
could we call this like, internalBuckets or something? Just for future proofing, what if we aren't "DevProd" forever haha (think "mci")
…from devprod owned buckets
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM with jonathan approval
@@ -1906,7 +1902,7 @@ <h2 class="modal-title">[[modalTitle]]</h2> | |||
<input type="text" ng-model="Settings.providers.aws.task_sync_read.secret"> | |||
</md-input-container> | |||
<md-input-container class="control" style="width:45%;"> | |||
<label>Task Read-Only S3 Bucket</label> | |||
must be specified<label>Task Read-Only S3 Bucket</label> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this seems like it was meant to be somewhere else
|
||
// InternalBuckets are the buckets that Evergreen's app servers have access to | ||
// via their IRSA role. | ||
InternalBuckets []string `yaml:"internal_buckets" bson:"internal_buckets" json:"internal_buckets"` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The way BucketsConfig
is structured now this seems out of place. Like before the Credentials
field contains the credentials for accessing the LogBucket
. But now the InternalBuckets
are interjected in the middle.
DEVPROD-6193
Description
This makes the app servers use AWS IRSA to sign mciuploads bucket urls and it also stops uploading the keys when a user uploads to mciuploads.
Testing
Deployed in staging. Added the new key in staging global document. This task uploaded a signed url, and it generates the url correctly and the database does hold the key/secret that was associated with it but the generated url is without it.