Skip to content

Commit

Permalink
Added permissions to Quicksight monitoring service layer (#1715)
Browse files Browse the repository at this point in the history
### Feature or Bugfix
- Feature

### Detail
- Added permissions to Quicksight monitoring service layer: it now
checks that the user belongs to the tenant group

### Relates
- <URL or Ticket>

### Security
Please answer the questions below briefly where applicable, or write
`N/A`. Based on
[OWASP 10](https://owasp.org/Top10/en/).

- Does this PR introduce or modify any input fields or queries - this
includes
fetching data from storage outside the application (e.g. a database, an
S3 bucket)?
  - Is the input sanitized?
- What precautions are you taking before deserializing the data you
consume?
  - Is injection prevented by parametrizing queries?
  - Have you ensured no `eval` or similar functions are used?
- Does this PR introduce any functionality or component that requires
authorization?
- How have you ensured it respects the existing AuthN/AuthZ mechanisms?
  - Are you logging failed auth attempts?
- Are you using or adding any cryptographic features?
  - Do you use a standard proven implementations?
  - Are the used keys controlled by the customer? Where are they stored?
- Are you introducing any new policies/roles/users?
  - Have you used the least-privilege principle? How?


By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license.
  • Loading branch information
dlpzx committed Dec 5, 2024
1 parent fce3455 commit 095c208
Showing 1 changed file with 3 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ def get_quicksight_designer_url(cls, uri: str):

@staticmethod
def get_monitoring_dashboard_id():
DashboardQuicksightService._check_user_must_be_admin()
current_account = SessionHelper.get_account()
dashboard_id = ParameterStoreManager.get_parameter_value(
AwsAccountId=current_account,
Expand All @@ -87,6 +88,7 @@ def get_monitoring_dashboard_id():

@staticmethod
def get_monitoring_vpc_connection_id():
DashboardQuicksightService._check_user_must_be_admin()
current_account = SessionHelper.get_account()
vpc_connection_id = ParameterStoreManager.get_parameter_value(
AwsAccountId=current_account,
Expand All @@ -103,6 +105,7 @@ def get_monitoring_vpc_connection_id():

@classmethod
def create_quicksight_data_source_set(cls, vpc_connection_id):
cls._check_user_must_be_admin()
client = cls._client()
client.register_user_in_group(group_name='dataall', user_role='AUTHOR')

Expand Down

0 comments on commit 095c208

Please sign in to comment.