System Access Control

This document describes the processes that support the following company policies:

System Access Change

Performed by Security Officer

Account Provisioning

  1. Initiate the access request by creating a ticket in Shortcut using the System Access Control - Account Provisioning Story Template:
  2. Perform the account provisioning
    • Verify user identity prior to granting access/additional permissions
    • Fill the required information in the ticket
    • Grant permissions to the systems that are relevant to the user
    • Inform user that MFA should be set-up as soon as possible on all accounts (In particular: Google, AWS, Github)
    • Update account status/info/mappings in Drata
  3. The Google Groups whose name starts with t- (for team), such as t-engineering have a special meaning for AWS as they are used to assign permissions during the SSO (AWS IAM Identity Center) process. As a result, make sure to assign the new user to the relevant groups.
  4. To update the AWS IAM Identity Center users and groups, run the ssosync tool after making changes to the users/groups in Google Workspace.
  5. Complete the ticket
    • If the request is rejected, it goes back for further review and documentation.
    • If the review is approved, the request is marked as “Done”, and any pertinent notes are added.

Account Provisioning Required Info

Information that must be provided in the ticket:

InformationDescription
Name???
Narrative Email???
How user identity has been verifiedBy Phone/ By Videocall/In Person
Role / Job Title / Responsibilities???
Additional access required outside of the minimum necessary to perform job functions with rationale??

Account Deprovisioning

  1. Initiate the access request by creating a ticket in Shortcut using the System Access Control - Account Deprovisioning Story Template:
  1. Perform the account deprovisioning
  2. To update the AWS IAM Identity Center users and groups, run the ssosync tool after making changes to the users/groups in Google Workspace.
  3. Complete the ticket
  • If the request is rejected, it goes back for further review and documentation.
  • If the review is approved, the request is marked as “Done”, and any pertinent notes are added.

Account Deprovisioning Required Info

Information that must be provided in the ticket:

InformationDescription
Name???
Narrative Email???

Access Change

Additional Permissions, MFA Reset, or Password Reset Procedure:

  1. Initiate the access request by creating a ticket in Shortcut using the System Access Control - Access Change Story Template:
  1. Perform the access change
    • Very user identity prior to granting access to new accounts for Onboarding and Password Reset requests
    • Validate that requested permissions are reasonable
    • Perform requested changes
    • Update account status/info in Drata if needed (e.g. merge access in Github)
  2. Complete the ticket
  • If the request is rejected, it goes back for further review and documentation.
  • If the review is approved, the request is marked as “Done”, and any pertinent notes are added.

Access Change Required Info

Information that must be provided in the ticket:

InformationDescription
Name???
Narrative Email???
System Access Control Request TypeAdditional Permissions Requested/Password Reset/MFA Reset
How user identity has been verifiedBy Phone/ By Videocall/In Person
Role / Job Title / Responsibilities???
Additional access required outside of the minimum necessary to perform job functions with rationale??

System Access Review

Performed by Security Officer

  • Once a year, initiate the review of user access by creating a ticket in Shortcut
  • Review levels of access for each workforce member
  • Summarize the result of the review in the ticket using the System Access Review Summary table
  • Write down any additional remarks or comments in the ticket
  • If user access is found during review that is not in line with the least privilege principle, modify user access and notify the user of access changes
  • Upload evidence to Drata
  • Mark the ticket as “Done”, adding any pertinent notes required.

Relevant information:

System Access Review Summary

The review can be summarized using the following table:

ServiceReview StatusCorrective Actions Performed
Narrative
Google Workspace
Github
Cloudflare
Notion
Slack
AWS
Shortcut (narrative-security)
Shortcut (narrative-io)
NPM
Cron
Datadog
Splunk On-call
Stripe
Drata
HubSpot
LinkedIn
Facebook
Instagram

Managed Systems

This section contains the list of systems relevant to the access change and system access review processes.

As a general rule, whenever someone's access is revoked, it is important to ensure that at least 2 people from the engineering team and 1 person from the operations or executive team still have admin access to each system.

See Account Provisioning (Notion) for help on setting up each of the below:

  • Narrative
  • Google Workspace
  • Google Cloud Console
    • Organizations
    • Projects
    • Warning: Only project owners can access the projects. Organization owners do not automatically inherit project admin permissions. As a result, whenever revoking someone's access to either an organization or a project, it is important to ensure that there are at least 2 people from the engineering team and at least one person from the operations or executive team who are owners of
      • each of the organizations
      • each of the projects
  • Github
  • Cloudflare
  • Notion
  • Slack
  • AWS
  • Shortcut
  • NPM
  • Cron
  • Datadog
  • Splunk On-call
  • Stripe
  • Drata
  • HubSpot
  • LinkedIn
    • Narrative's LinkedIn Business Page
    • Narrative-owned Apps
    • Warning: LinkedIn page super admins do not have access to LinkedIn apps, even if the apps are "company verified". Each app has a list of admins that is configured independently of other apps and business pages. As a result, whenever revoking someone's access to either an app or a business page, it is important to ensure that there are at least 2 people from the engineering team and at least one person from the operations or executive team who are super admins of
      • the LinkedIn Business Page
      • each of the Narrative apps.
  • Facebook
  • Instagram

Partner Offboarding

  1. Initiate the review of user access by creating a ticket in Shortcut
  1. Perform the offboarding
    • Delete relevant external-* IAM users (mostly legacy or custom users)
    • Delete relevant external-* IAM roles
    • Deactivate all datasets owned by the partner. The snapshots will be expired automatically
    • Delete all Kinesis streams that are specific to the partner's integration (mostly legacy integrations)
    • Delete all S3 buckets and associated data that are relevant to the partner's integration (mostly legacy integrations)
    • Remove terraform config for legacy ingestion triggers on legacy buckets
  2. Mark the ticket as “Done”, adding any pertinent notes required