{"_id":"5af356ad9553b00003d0dab1","project":"55faeacad0e22017005b8265","version":{"_id":"55faeacad0e22017005b8268","project":"55faeacad0e22017005b8265","__v":36,"createdAt":"2015-09-17T16:31:06.800Z","releaseDate":"2015-09-17T16:31:06.800Z","categories":["55faeacbd0e22017005b8269","55faf550764f50210095078e","55faf5b5626c341700fd9e96","55faf8a7825d5f19001fa386","560052f91503430d007cc88f","560054f73aa0520d00da0b1a","56005aaf6932a00d00ba7c62","56005c273aa0520d00da0b3f","5601ae7681a9670d006d164d","5601ae926811d00d00ceb487","5601aeb064866b1900f4768d","5601aee850ee460d0002224c","5601afa02499c119000faf19","5601afd381a9670d006d1652","561d4c78281aec0d00eb27b6","561d588d8ca8b90d00210219","563a5f934cc3621900ac278c","5665c5763889610d0008a29e","566710a36819320d000c2e93","56ddf6df8a5ae10e008e3926","56e1c96b2506700e00de6e83","56e1ccc4e416450e00b9e48c","56e1ccdfe63f910e00e59870","56e1cd10bc46be0e002af26a","56e1cd21e416450e00b9e48e","56e3139a51857d0e008e77be","573b4f62ef164e2900a2b881","57c9d1335fd8ca0e006308ed","57e2bd9d1e7b7220000d7fa5","57f2b992ac30911900c7c2b6","58adb5c275df0f1b001ed59b","58c81b5c6dc7140f003c3c46","595412446ed4d9001b3e7b37","59e76ce41938310028037295","5a009de510890d001c2aabfe","5a96f89c89442e002041144b"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"v1","version_clean":"1.0.0","version":"1"},"category":{"_id":"5ad0fbabe059eb0003fed143","project":"55faeacad0e22017005b8265","version":"55faeacad0e22017005b8268","__v":0,"sync":{"url":"","isSync":false},"reference":false,"createdAt":"2018-04-13T18:49:15.816Z","from_sync":false,"order":1,"slug":"gbdx-operations","title":"GBDX Operations"},"user":"55fae9d4825d5f19001fa379","__v":0,"parentDoc":null,"updates":[],"next":{"pages":[],"description":""},"createdAt":"2018-05-09T20:14:37.250Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":4,"body":"# GBDX Platform Overview\n\nThe GBDX platform leverages Amazon Web Services (AWS) and other state-of-the-art technologies to create a scalable infrastructure for accessing DigitalGlobe's vast imagery archive and performing analytical compute to answer business questions. At the core of its infrastructure is a group of restful APIs that allow users to search DigitalGlobe and third-party imagery holdings, order imagery products, bring custom algorithms to the platform, and run a series of algorithms in a workflow. Imagery and customer assets are stored in protected AWS S3 locations with access control. \n\nGBDX uses AWS’s EC2 service (Elastic Cloud Compute) to run algorithms on imagery data.  More information about EC2 can be found [here](https://aws.amazon.com/ec2/).\n\n\n## Architectural Diagram\n\nThis architectural diagram shows the components and technologies that govern data access and compute on the GBDX platform. \n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/0cf33eb-GBDX_architecture.png\",\n        \"GBDX_architecture.png\",\n        1685,\n        1007,\n        \"#c87b47\"\n      ],\n      \"caption\": \"This diagram provides an overview of the GBDX platform architecture. Click to enlarge.\",\n      \"border\": true,\n      \"sizing\": \"smart\"\n    }\n  ]\n}\n[/block]\n## GBDX Main Components\n\nThe GBDX platform includes the following components:\n\nComponent | Description | More Information\n--- | ---\nAuthentication System | The GBDX authentication system generates an access token that must be included with any API request | [Authentication Course](doc:authentication-course) \nAuthorization System | The GBDX Authorization system restricts assets to data and assets by policy and license. | See [Authorization](https://gbdxdocs.digitalglobe.com/v1/docs/gbdx-security#section-authorization) below.\nCatalog API | Search for imagery or get the metadata for a specific catalog record | [Catalog V2 API Course](doc:catalog-v2-course) \nOrders API | Order DigitalGlobe imagery by catalog ID | [Ordering Course v2](doc:ordering-course-v2) \nWorkflow API | Register a task, submit a workflow to run a series of tasks | [Workflow API Course](doc:workflow-api-course) \nS3 Storage Service | Generate temporary AWS credentials to access the GBDX S3 customer location| [S3 Storage Service Course](doc:s3-storage-service-course) \n\n\n## Dataflow Diagram\nThis diagram shows the main user interactions with the individual components of GBDX. \n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/c68c9df-GBDX_Technical_Workflow_Diagram.png\",\n        \"GBDX Technical Workflow Diagram.png\",\n        938,\n        513,\n        \"#144766\"\n      ],\n      \"caption\": \"GBDX dataflow diagram.\",\n      \"sizing\": \"80\",\n      \"border\": true\n    }\n  ]\n}\n[/block]\n\n# Platform Security Overview\n\nThe GBDX platform was architected from the start with system and data security in mind.  The GBDX team continues to track and implement security improvements using industry standards and best practices. \n\nSome highlights of the GBDX platform security architecture include:\n\n* GBDX participates in the [AWS Shared Responsibility Model](https://aws.amazon.com/compliance/shared-responsibility-model/) and adheres to the best practices described in this model. \n* GBDX follows AWS best practices for [Distributed Denial of Service (DDOS) attack mitigation](https://aws.amazon.com/answers/networking/aws-ddos-attack-mitigation/).\n* GBDX services are served from [AWS Route53 scalable DNS](https://aws.amazon.com/route53/). \n* GBDX leverages [Elastic Load Balanced AWS services](https://aws.amazon.com/elasticloadbalancing/) such as Elastic Beanstalk and Lambda.\n* REST API endpoints are located in private subnets of [Amazon Virtual Private Clouds (VPCs)](https://aws.amazon.com/vpc/). These VPCs are protected with strict security groups and network access control lists.\n* All Internet traffic coming to GBDX systems goes through a Web Application Firewall (WAF).\n* All data is stored in secured AWS S3 locations with strict policies for access.\n* Comprehensive monitoring of platform resources is performed via dashboards, automated alarms, and issue management.\n\n# Access and Authentication\n\nUser credentials and an access token are both required to use GBDX platform components. \n\n## User Credentials\nUsers must have credentials to access applications that run on GBDX such as the GBDX Dashboard, GBDX Notebooks, and the python-based tools suite, \"gbdxtools.\" User credentials are also required to request a user access token. Access tokens grant access to GBDX APIs.\n\nThere are two ways to create GBDX user credentials:\n\n* Sign up for an account: When a user fills out the [signup form](https://signup.geobigdata.io), they submit personally identifiable information such as first and last name, business name, and phone number. They also submit their email address and set a password. Email address and password are the customer's user credentials. \n\n* An account administrator can invite a user to their account. The user will receive an invitation in email. The email contains an authenticated link. that allows the user to continue the signup process.  A user cannot log in in to the platform until the email has been verified.  The same email verification system is also used when a customer requests to reset their password.\n\n## Authentication and Access Tokens\n\nThe GBDX Platform uses the industry standard Auth0 service to perform oauth2 authentication.  These services provide  robust sign-in services, user management, and sophisticated \"brute force\" protections that will block users if attempts to guess passwords are made.  \n\nTo access GBDX APIs, an access token is required. Users can request a token with their user credentials. Tokens expire after a specified period of time.  Tokens are required to access GBDX APIs and to generate temporary S3 credentials.\n\n# Authorization\nThe GBDX Authorization system restricts access to customer data, API usage, and algorithms by user policy and license. The Authorization system determines who can access specific data and assets, based on a set of business rules, including but not limited to account tiers and user roles. \n\n## Account Level Access Control\n\nThe GBDX platform uses “accounts” to manage and protect data and assets. All GBDX users are associated with an account. Accounts are considered the owner of the client’s resources. Because ownership is at the account level, users and personnel can change without losing access to and control of resources. \n\n## Accounts and Users\nTo understand how account level access control works, it's helpful to understand what we mean by \"accounts\" and \"users.\"\n\nName | Description\n--- | ---\nAccount | An account has identifying information about the business, such as business name, address, phone number, and contract tier. When a user signs up for GBDX using an online tool, an account is automatically created, with that user as the account administrator. The account administrator can invite users to join the account. \nUser | Users must be associated with an account. User data includes name, email address, and password. \n\n*The following rules apply to accounts and users.*\n\n* An account can have multiple users\n* A user can only be associated with one account. \n* Users can only access data and assets stored within the account they are associated with. \n* Algorithms registered on the GBDX platform are associated with an account. Algorithms registered as “private” (the default setting) can only be seen and run by users within the account.\n\n\n\n## User Roles\n\nGBDX uses the concept of roles to manage account and user level data. All users are assigned roles.\n\nRole | Description | Allowed Operations\n--- | --- | ---\nUser | The user role can view all data within the account they are associated with. Users can update their own usernames and passwords.  | Update username, Update password\nAccount Admin | The account administrator is responsible for adding users to the account using the GBDX account management user interface. | Invite a user to the account, Remove a user from the account, Assign or change  roles to users, Update account profile data\n\n# Personal Data Protection\nAll user and account information is stored in secured databases. Authorization controls are in place to verify that only account owners and administrators can see or edit information for their account and for their users.  \n\nInformation that could be used to make a personal identification is considered Personally Identifiable Information (PII). This information is associated with an account or a user, and only accessible with allowed user credentials.\n\nPII  includes, but not limited to:\n●  \tFirst and last name\n●  \tAddress\n●  \tCountry\n●  \tCompany\n●  \tPhone numbers\n●  \tAny other metadata associated with the user’s account   \n\n# User-Generated Content Protection and Storage\n\nUser-generated content is any content created on or uploaded to the GBDX platform for the purposes of compute. Examples are shapefiles and Digital Elevation Models (DEMS) that a a user uploads to be used as inputs to an algorithm. Output files generated from a task are also considered user-generated content.\n\nThe user-generated content and assets are stored in a protected S3 location that is secured by two layers: AWS access control and a token acquired from the GBDX Authentication system. The S3 location and the content stored within are only accessible by members of the associated account. \n\n## Storage of Task Output Files\nRunning a workflow on the GBDX platform produces an output file. Output files can be saved to the GBDX customer S3 location (recommended), or to a personal location. This operation requires the user to have AWS credentials to the personal S3 location. \n\nFor more information on saving task outputs see [How to Save Task Outputs](doc:how-to-save-task-outputs) \n\n## File Access\nAccessing  files in the GBDX customer S3 location requires both a token and temporary AWS credentials.    The GBDX S3 Storage Service provides temporary credentials that can be used to list or download data from the customer's data location. The GBDX customer S3 location and the content stored within are restricted to users of the associated account. \n\nSee [S3 Storage Service Course](doc:s3-storage-service-course)  for more information.\n\n## Deletion of Stored Customer Data\nUsers can delete data using temporary credentials acquired from the GBDX S3 Storage Service. DigitalGlobe reserves the right to delete customer data in the following circumstances:\n\n* The stored contents violate either GBDX or AWS Terms of Service\n* The storage capacity allowed for in the customer’s subscription contract has been exceeded\n* The GBDX subscription is terminated or reaches its end date without extension\n\n# User-Produced Algorithms Protection and Storage\nThe GBDX platform is designed to allow users to bring their own algorithms to the platform. Publishing a task on GBDX requires the task to be \"Dockerized\" and registered in the GBDX task registry. When a task is registered, the Docker image is migrated to an AWS Container accessible by the GBDX platform.\n\n## Registering a Task\nRegistering a task is accomplished by submitting a JSON task definition to the Workflow API. Registering a task triggers migration of the associated Docker image. \n\nWhen a task is registered, it is associated with the account ID of the user that submitted the registration. New algorithms are registered as \"private\" by default. Algorithms can be made \"public\" by a member of the GBDX Operations and Support team by request. \n\nValue | Description\n--- | ---\nPrivate Task | A private task is only available to users of the account the task was registered with. \nPublic Task | A public task is available for use by any GBDX user. \nCustom Authorization | It is possible to share a task with users outside of the account by adding individuals as authorized users of that task. At this time, this can only be done by submitting a request to the [GBDX Support team](mailto:gbdx-support:::at:::digitalglobe.com).\n\nFor more information about Dockerizing and registering a task, see [Creating a Custom Task](http://gbdxstories.digitalglobe.com/create-task/).\n\n## Docker Migration \nUser -produced algorithms are accessed from the user-controlled Docker Hub repositories.  Before registering a task in the GBDX task registry, the user must allow “read” access to a specific Docker Hub user under DigitalGlobe control.  The task owner may remove this user's permissions at any time; however, removing the DG user may make the task unavailable on the GBDX platform. \n\n When the user submits the task to the platform, the Docker images are migrated to reside within AWS Containers that are designed to store and execute code. AWS provides dedicated access to these containers for GBDX platform resources. No direct access to the container, or its underlying executable, is provided to any user  at any time.\n\n## Updating a Task\nTo update or version a task, the user must be a member of the account the task was registered with. Only users of that account can perform the following operations for an existing task:\n\n* Update the contents of the task definition\n* Update the version number for a task\n* Delete a task from the task registry\n\n# Workflow Information Protection\nA \"workflow\" is a series of tasks chained together to perform a series of operations and produce an output. Workflows are associated with accounts. Only a user from the associated account can see information about the workflow. This includes the workflow definition and workflow status and events. \n\n# Contact Us\nIf you have questions about GBDX Security, please contact [GBDX Support](mailto:gbdx-support@digitalglobe.com).","excerpt":"This document provides an overview of the GBDX platform security design. The GBDX platform uses state-of-the-art capabilities to protect the confidentiality of users, geospatial and ancillary data,  and assets  generated by and stored on the platform.","slug":"gbdx-security","type":"basic","title":"GBDX Security"}

GBDX Security

This document provides an overview of the GBDX platform security design. The GBDX platform uses state-of-the-art capabilities to protect the confidentiality of users, geospatial and ancillary data, and assets generated by and stored on the platform.

# GBDX Platform Overview The GBDX platform leverages Amazon Web Services (AWS) and other state-of-the-art technologies to create a scalable infrastructure for accessing DigitalGlobe's vast imagery archive and performing analytical compute to answer business questions. At the core of its infrastructure is a group of restful APIs that allow users to search DigitalGlobe and third-party imagery holdings, order imagery products, bring custom algorithms to the platform, and run a series of algorithms in a workflow. Imagery and customer assets are stored in protected AWS S3 locations with access control. GBDX uses AWS’s EC2 service (Elastic Cloud Compute) to run algorithms on imagery data. More information about EC2 can be found [here](https://aws.amazon.com/ec2/). ## Architectural Diagram This architectural diagram shows the components and technologies that govern data access and compute on the GBDX platform. [block:image] { "images": [ { "image": [ "https://files.readme.io/0cf33eb-GBDX_architecture.png", "GBDX_architecture.png", 1685, 1007, "#c87b47" ], "caption": "This diagram provides an overview of the GBDX platform architecture. Click to enlarge.", "border": true, "sizing": "smart" } ] } [/block] ## GBDX Main Components The GBDX platform includes the following components: Component | Description | More Information --- | --- Authentication System | The GBDX authentication system generates an access token that must be included with any API request | [Authentication Course](doc:authentication-course) Authorization System | The GBDX Authorization system restricts assets to data and assets by policy and license. | See [Authorization](https://gbdxdocs.digitalglobe.com/v1/docs/gbdx-security#section-authorization) below. Catalog API | Search for imagery or get the metadata for a specific catalog record | [Catalog V2 API Course](doc:catalog-v2-course) Orders API | Order DigitalGlobe imagery by catalog ID | [Ordering Course v2](doc:ordering-course-v2) Workflow API | Register a task, submit a workflow to run a series of tasks | [Workflow API Course](doc:workflow-api-course) S3 Storage Service | Generate temporary AWS credentials to access the GBDX S3 customer location| [S3 Storage Service Course](doc:s3-storage-service-course) ## Dataflow Diagram This diagram shows the main user interactions with the individual components of GBDX. [block:image] { "images": [ { "image": [ "https://files.readme.io/c68c9df-GBDX_Technical_Workflow_Diagram.png", "GBDX Technical Workflow Diagram.png", 938, 513, "#144766" ], "caption": "GBDX dataflow diagram.", "sizing": "80", "border": true } ] } [/block] # Platform Security Overview The GBDX platform was architected from the start with system and data security in mind. The GBDX team continues to track and implement security improvements using industry standards and best practices. Some highlights of the GBDX platform security architecture include: * GBDX participates in the [AWS Shared Responsibility Model](https://aws.amazon.com/compliance/shared-responsibility-model/) and adheres to the best practices described in this model. * GBDX follows AWS best practices for [Distributed Denial of Service (DDOS) attack mitigation](https://aws.amazon.com/answers/networking/aws-ddos-attack-mitigation/). * GBDX services are served from [AWS Route53 scalable DNS](https://aws.amazon.com/route53/). * GBDX leverages [Elastic Load Balanced AWS services](https://aws.amazon.com/elasticloadbalancing/) such as Elastic Beanstalk and Lambda. * REST API endpoints are located in private subnets of [Amazon Virtual Private Clouds (VPCs)](https://aws.amazon.com/vpc/). These VPCs are protected with strict security groups and network access control lists. * All Internet traffic coming to GBDX systems goes through a Web Application Firewall (WAF). * All data is stored in secured AWS S3 locations with strict policies for access. * Comprehensive monitoring of platform resources is performed via dashboards, automated alarms, and issue management. # Access and Authentication User credentials and an access token are both required to use GBDX platform components. ## User Credentials Users must have credentials to access applications that run on GBDX such as the GBDX Dashboard, GBDX Notebooks, and the python-based tools suite, "gbdxtools." User credentials are also required to request a user access token. Access tokens grant access to GBDX APIs. There are two ways to create GBDX user credentials: * Sign up for an account: When a user fills out the [signup form](https://signup.geobigdata.io), they submit personally identifiable information such as first and last name, business name, and phone number. They also submit their email address and set a password. Email address and password are the customer's user credentials. * An account administrator can invite a user to their account. The user will receive an invitation in email. The email contains an authenticated link. that allows the user to continue the signup process. A user cannot log in in to the platform until the email has been verified. The same email verification system is also used when a customer requests to reset their password. ## Authentication and Access Tokens The GBDX Platform uses the industry standard Auth0 service to perform oauth2 authentication. These services provide robust sign-in services, user management, and sophisticated "brute force" protections that will block users if attempts to guess passwords are made. To access GBDX APIs, an access token is required. Users can request a token with their user credentials. Tokens expire after a specified period of time. Tokens are required to access GBDX APIs and to generate temporary S3 credentials. # Authorization The GBDX Authorization system restricts access to customer data, API usage, and algorithms by user policy and license. The Authorization system determines who can access specific data and assets, based on a set of business rules, including but not limited to account tiers and user roles. ## Account Level Access Control The GBDX platform uses “accounts” to manage and protect data and assets. All GBDX users are associated with an account. Accounts are considered the owner of the client’s resources. Because ownership is at the account level, users and personnel can change without losing access to and control of resources. ## Accounts and Users To understand how account level access control works, it's helpful to understand what we mean by "accounts" and "users." Name | Description --- | --- Account | An account has identifying information about the business, such as business name, address, phone number, and contract tier. When a user signs up for GBDX using an online tool, an account is automatically created, with that user as the account administrator. The account administrator can invite users to join the account. User | Users must be associated with an account. User data includes name, email address, and password. *The following rules apply to accounts and users.* * An account can have multiple users * A user can only be associated with one account. * Users can only access data and assets stored within the account they are associated with. * Algorithms registered on the GBDX platform are associated with an account. Algorithms registered as “private” (the default setting) can only be seen and run by users within the account. ## User Roles GBDX uses the concept of roles to manage account and user level data. All users are assigned roles. Role | Description | Allowed Operations --- | --- | --- User | The user role can view all data within the account they are associated with. Users can update their own usernames and passwords. | Update username, Update password Account Admin | The account administrator is responsible for adding users to the account using the GBDX account management user interface. | Invite a user to the account, Remove a user from the account, Assign or change roles to users, Update account profile data # Personal Data Protection All user and account information is stored in secured databases. Authorization controls are in place to verify that only account owners and administrators can see or edit information for their account and for their users. Information that could be used to make a personal identification is considered Personally Identifiable Information (PII). This information is associated with an account or a user, and only accessible with allowed user credentials. PII includes, but not limited to: ● First and last name ● Address ● Country ● Company ● Phone numbers ● Any other metadata associated with the user’s account # User-Generated Content Protection and Storage User-generated content is any content created on or uploaded to the GBDX platform for the purposes of compute. Examples are shapefiles and Digital Elevation Models (DEMS) that a a user uploads to be used as inputs to an algorithm. Output files generated from a task are also considered user-generated content. The user-generated content and assets are stored in a protected S3 location that is secured by two layers: AWS access control and a token acquired from the GBDX Authentication system. The S3 location and the content stored within are only accessible by members of the associated account. ## Storage of Task Output Files Running a workflow on the GBDX platform produces an output file. Output files can be saved to the GBDX customer S3 location (recommended), or to a personal location. This operation requires the user to have AWS credentials to the personal S3 location. For more information on saving task outputs see [How to Save Task Outputs](doc:how-to-save-task-outputs) ## File Access Accessing files in the GBDX customer S3 location requires both a token and temporary AWS credentials. The GBDX S3 Storage Service provides temporary credentials that can be used to list or download data from the customer's data location. The GBDX customer S3 location and the content stored within are restricted to users of the associated account. See [S3 Storage Service Course](doc:s3-storage-service-course) for more information. ## Deletion of Stored Customer Data Users can delete data using temporary credentials acquired from the GBDX S3 Storage Service. DigitalGlobe reserves the right to delete customer data in the following circumstances: * The stored contents violate either GBDX or AWS Terms of Service * The storage capacity allowed for in the customer’s subscription contract has been exceeded * The GBDX subscription is terminated or reaches its end date without extension # User-Produced Algorithms Protection and Storage The GBDX platform is designed to allow users to bring their own algorithms to the platform. Publishing a task on GBDX requires the task to be "Dockerized" and registered in the GBDX task registry. When a task is registered, the Docker image is migrated to an AWS Container accessible by the GBDX platform. ## Registering a Task Registering a task is accomplished by submitting a JSON task definition to the Workflow API. Registering a task triggers migration of the associated Docker image. When a task is registered, it is associated with the account ID of the user that submitted the registration. New algorithms are registered as "private" by default. Algorithms can be made "public" by a member of the GBDX Operations and Support team by request. Value | Description --- | --- Private Task | A private task is only available to users of the account the task was registered with. Public Task | A public task is available for use by any GBDX user. Custom Authorization | It is possible to share a task with users outside of the account by adding individuals as authorized users of that task. At this time, this can only be done by submitting a request to the [GBDX Support team](mailto:gbdx-support@digitalglobe.com). For more information about Dockerizing and registering a task, see [Creating a Custom Task](http://gbdxstories.digitalglobe.com/create-task/). ## Docker Migration User -produced algorithms are accessed from the user-controlled Docker Hub repositories. Before registering a task in the GBDX task registry, the user must allow “read” access to a specific Docker Hub user under DigitalGlobe control. The task owner may remove this user's permissions at any time; however, removing the DG user may make the task unavailable on the GBDX platform. When the user submits the task to the platform, the Docker images are migrated to reside within AWS Containers that are designed to store and execute code. AWS provides dedicated access to these containers for GBDX platform resources. No direct access to the container, or its underlying executable, is provided to any user at any time. ## Updating a Task To update or version a task, the user must be a member of the account the task was registered with. Only users of that account can perform the following operations for an existing task: * Update the contents of the task definition * Update the version number for a task * Delete a task from the task registry # Workflow Information Protection A "workflow" is a series of tasks chained together to perform a series of operations and produce an output. Workflows are associated with accounts. Only a user from the associated account can see information about the workflow. This includes the workflow definition and workflow status and events. # Contact Us If you have questions about GBDX Security, please contact [GBDX Support](mailto:gbdx-support@digitalglobe.com).