Skip to content
This repository has been archived by the owner on Dec 8, 2024. It is now read-only.

Initial move of code from aws-quickstart repo #2

Merged
merged 59 commits into from
Feb 29, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
614b2f1
fixing merge confilict
troy-ameigh Feb 20, 2023
f4b7714
Adding skeleton for docs-as-code
troy-ameigh Feb 20, 2023
8a63045
added Operation Guide framework
troy-ameigh Feb 28, 2023
bd08e46
First draft documentation
kdmck Mar 1, 2023
7c0fd06
Updates for deployment guide and operational guide
kdmck Mar 10, 2023
5e5aff5
fixed Nodejs version
kdmck Mar 13, 2023
fbbc9e3
fixed paths
kdmck Mar 13, 2023
20832c0
fixed paths
kdmck Mar 13, 2023
58695d1
Fixed error in Immuta config
kdmck Mar 16, 2023
d7daf1e
Updated Architecture diagrams
troy-ameigh Apr 7, 2023
db4329c
Updated deployment guide with minor edits
kdmck Apr 11, 2023
b4793eb
Updated deployment guide with more minor edits
kdmck Apr 11, 2023
e66c0ac
Updated EKSAdminRole description
kdmck Apr 14, 2023
fb52354
Updated ignore
troy-ameigh Apr 25, 2023
9e744f6
TW edits
censullo May 1, 2023
70728e3
TW edits
censullo May 2, 2023
c989d64
TW edits
censullo May 4, 2023
1ba8a64
TW edits
censullo May 4, 2023
2dd3c73
TW edits
censullo May 8, 2023
3540d7c
TW edits
censullo May 8, 2023
841677a
TW edits
censullo May 8, 2023
418f557
TW edits
censullo May 9, 2023
4ba6ecb
TW edits
censullo May 9, 2023
e197928
TW edits
censullo May 9, 2023
b5da157
TW edits
censullo May 9, 2023
c853f41
TW edits
censullo May 9, 2023
e227cad
Minor doc edits and architecture drawing change
kdmck May 10, 2023
1979391
TW edits after engineering team review
censullo May 11, 2023
0682b4a
TW edits after peer review of landing page
censullo May 12, 2023
70fd357
minor edit to build guide
censullo May 12, 2023
d4f3c15
add AWS logo to guide
censullo Jun 9, 2023
5cd2da5
add nojekyll for AWS logo
censullo Jun 9, 2023
13282b3
Fixing merge conflict in READ.md
troy-ameigh Feb 29, 2024
03bf1ae
Fixing merge issue
troy-ameigh Feb 29, 2024
935882d
Initial DFS commit
djenifwa Mar 9, 2023
fd50fdf
Bump json5 from 2.2.1 to 2.2.3
dependabot[bot] Mar 28, 2023
60105fb
Added missing resource files and pushed non executable of dfs script
djenifwa Mar 30, 2023
cb2a08f
Added zip files and updated dev.yaml with examples
kdmck Apr 10, 2023
81612b2
Added subnet fix
djenifwa Apr 11, 2023
1cea7ed
Updated with ClusterName attribute
djenifwa Apr 11, 2023
b268f9e
Bump xml2js and @aws-quickstart/eks-blueprints
dependabot[bot] Apr 10, 2023
eff9e10
Updated EKS to 1.25
djenifwa Apr 14, 2023
973001c
Fixed private EKS cluster deployment
djenifwa Apr 14, 2023
cd3f280
Cleaned up imports
djenifwa Apr 14, 2023
863b50a
Added TSDoc comments
djenifwa Apr 14, 2023
5c09169
Removed resource files
djenifwa Apr 14, 2023
190b089
Added comment
djenifwa Apr 14, 2023
f79a26b
Bump yaml from 2.1.3 to 2.2.2
dependabot[bot] Apr 25, 2023
6845743
Fixed package issues after npm audit fix and cdk-nag surpressions
djenifwa May 10, 2023
65cab99
Added CdkNagValidationFailure warning suppressions
djenifwa May 10, 2023
c041146
Added description
djenifwa May 11, 2023
6f24a1d
Updated description code
djenifwa May 11, 2023
c1f7265
Fixed ClusterName, upgraded EKS blueprints to 1.12.0, and EKS v1.27
djenifwa Oct 18, 2023
4d4a412
Updated NPM packages
djenifwa Nov 15, 2023
c74fcfc
Updated Immuta and RL versions. Updated EKS output variables and mast…
djenifwa Dec 6, 2023
abbbef2
Removed submodule
troy-ameigh Feb 29, 2024
29348ca
removed and readded boilerplate for docs
troy-ameigh Feb 29, 2024
7b69e33
updated docs settings
troy-ameigh Feb 29, 2024
62ecd09
updated gitignore
troy-ameigh Feb 29, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added .DS_Store
Binary file not shown.
11 changes: 11 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
*.js
!jest.config.js
*.d.ts
node_modules

# CDK asset staging directory
.cdk.staging
cdk.out
.DS_Store
.editorconfig
.pre-commit-config.yaml
4 changes: 4 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@

[submodule "docs/boilerplate"]
path = docs/boilerplate
url = https://github.com/aws-ia/aws-ia-documentation-base-common.git
2 changes: 1 addition & 1 deletion CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
@@ -1 +1 @@
* @aws-ia/aws-ia
* @aws-ia/aws-ia
2 changes: 1 addition & 1 deletion NOTICE.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Copyright 2016-2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
Copyright 2022-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved.

Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with the License. A copy of the License is located at

Expand Down
7 changes: 7 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
## Data Fabric Security on AWS—Solution

For architectural details, step-by-step instructions, and customization options, see the [deployment guide](https://fwd.aws/P5YgK?").

To post feedback, submit feature ideas, or report bugs, use the **Issues** section of this GitHub repo.

To submit code for this Solution, see the [AWS Quick Start Contributor's Guide](https://fwd.aws/NwqYA?).
27 changes: 27 additions & 0 deletions bin/cdk-solution.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import * as cdk from 'aws-cdk-lib';
import { AwsSolutionsChecks } from 'cdk-nag';

import { MainStack } from '../lib/main';
import { Config } from '../lib/core/config';

const app = new cdk.App();
cdk.Aspects.of(app).add(new AwsSolutionsChecks({
verbose: true,
reports: true
}));

async function Main() {
new Config().Load(`./config/dev.yaml`).then(_f => {

new MainStack(app, "DataFabricStack", {
env: {
account: Config.Current.AWSAccountID,
region: Config.Current.AWSRegion
},
description: '(qs-1u67sa7bo)'
});
});

}

Main();
2 changes: 2 additions & 0 deletions cdk.context.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
{
}
9 changes: 9 additions & 0 deletions cdk.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"app": "npx ts-node bin/cdk-solution.ts",
"context": {
"solution_id": "%%SOLUTION_ID%%",
"solution_name": "data-fabric-security",
"solution_version": "%%VERSION%%",
"@aws-cdk/customresources:installLatestAwsSdkDefault": false
}
}
43 changes: 43 additions & 0 deletions config/dev.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
AWSAccountID: "123456789012"
AWSRegion: "us-east-1"

Domain: "company.com"

Networking:
VpcId: "vpc-123456789abcdefgh"
SubnetA: "subnet-123456789abcdefgh"
SubnetB: "subnet-abcdefgh123456789"
MaxAZs: 2 # Default: 2 (Valid inputs are 2 or 3)

EKS:
ClusterName: "data-fabric-security-eks-cluster"
EKSAdminRole: "arn:aws-us-gov:iam::123456789012:role/aws-service-role/eks.amazonaws.com/EKSAdminRole"
EKSEndpointAccess: "PRIVATE" # Default: "" (Valid inputs are "PUBLIC", "PRIVATE", or "" for both)
InstanceType: "m5.large" # Default: "m5.large"
ClusterSize: 3

Immuta:
Deploy: true
ChartVersion: "4.13.2"
ImmutaVersion: "2023.4.0"
ImageTag: "2023.4.0"
Instance:
Username: "USERNAME"
Password: "PASSWORD"
Database:
ImmutaDBPassword: "SECRET"
ImmutaDBSuperUserPassword: "SECRET"
ImmutaDBReplicationPassword: "SECRET"
ImmutaDBPatroniApiPassword: "SECRET"
Query:
ImmutaQEPassword: "SECRET"
ImmutaQESuperUserPassword: "SECRET"
ImmutaQEReplicationPassword: "SECRET"
ImmutaQEPatroniApiPassword: "SECRET"

RadiantLogic:
Deploy: true
ZkImageTag: "3.5.8"
FidImageTag: "8.0.0"
License: "\\{rlib\\}xXXXXXXXXXXXX/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
RootPassword: "Password1!"
5 changes: 5 additions & 0 deletions dfs-solution-install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/bin/bash
echo "Deploying Data Fabric Security Solution"
cdk deploy DataFabricStack --require-approval never --no-rollback
cdk deploy DataFabricStack/data-fabric-security-eks-cluster --require-approval never --no-rollback
echo "Data Fabric Security Solution deployment completed"
6 changes: 6 additions & 0 deletions dfs-solution-uninstall.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
echo "Uninstalling Data Fabric Security Solution"
cdk destroy DataFabricStack/data-fabric-security-eks-cluster --force
cdk destroy DataFabricStack --force
echo "Cleaning up packages"
rm resources/immuta/install.zip resources/immuta/uninstall.zip resources/radiantlogic/install.zip resources/radiantlogic/uninstall.zip
echo "Uninstall completed"
Binary file added docs/.DS_Store
Binary file not shown.
1 change: 1 addition & 0 deletions docs/_deployment_guide.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
:type: cdk
Empty file added docs/_operational_guide.adoc
Empty file.
1 change: 1 addition & 0 deletions docs/boilerplate
Submodule boilerplate added at 62c362
Binary file added docs/deployment_guide/.DS_Store
Binary file not shown.
1 change: 1 addition & 0 deletions docs/deployment_guide/images/AWS-Logo.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/deployment_guide/images/architecture.pptx
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Binary file added docs/deployment_guide/images/~$architecture.pptx
Binary file not shown.
15 changes: 15 additions & 0 deletions docs/deployment_guide/partner_editable/_settings.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
:partner-solution-project-name: cdk-ps-aws-data-fabric-security
:partner-solution-github-org: aws-ia
:partner-product-name: Data Fabric Security
:partner-product-short-name: DFS
:partner-company-name: Immuta and Radiant Logic
:doc-month: May
:doc-year: 2023
//:partner-contributors: John Smith, {partner-company-name}
// :other-contributors: Akua Mansa, Trek10
:aws-contributors: Jenifer Wang, Solution Acceleration team (DoD)
:aws-ia-contributors: Troy Ameigh, AWS Integration & Automation team
:deployment_time: 30 minutes
//:default_deployment_region: us-east-1
// :private_repo:

26 changes: 26 additions & 0 deletions docs/deployment_guide/partner_editable/architecture.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
:xrefstyle: short

Deploying this Partner Solution with default parameters builds the following {partner-product-name} environment in the
AWS Cloud.

// Replace this example diagram with your own. Follow our wiki guidelines: https://w.amazon.com/bin/view/AWS_Quick_Starts/Process_for_PSAs/#HPrepareyourarchitecturediagram. Upload your source PowerPoint file to the GitHub {deployment name}/docs/images/ directory in its repository.

[#architecture1]
.Partner Solution architecture for {partner-product-name} on AWS
image::../docs/deployment_guide/images/data-fabric-security-on-aws-architecture-diagram.png[Architecture]

As shown in <<architecture1>>, this Partner Solution sets up the following:

* An architecture that spans two Availability Zones.*
* A virtual private cloud (VPC) configured with public and private subnets, according to AWS best practices, to provide you with your own virtual network on AWS.*
* In the public subnets, NAT gateways to allow outbound internet access for resources in the private subnets.*
* Two Classic Load Balancers, one each for the Immuta and RadiantOne services in the private subnets.
* In the private subnets:
** Three-node Amazon EKS clusters containing highly-available deployments of Immuta and RadiantOne.
** Amazon EKS to provide the Kubernetes control plane for the clusters.
** Endpoints for other AWS services to access the Amazon EKS Kubernetes API server.
* Amazon CloudWatch to collect, store, access, and monitor logs.
* Amazon Route 53 for a private hosted zone and resolvers.
* AWS Lambda to install Immuta and RadiantOne.

[.small]#* You can choose to use an existing VPC during deployment. The existing VPC must include two private subnets in separate Availability Zones.#
3 changes: 3 additions & 0 deletions docs/deployment_guide/partner_editable/licenses.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
// Include details about any licenses and how to sign up. Provide links as appropriate.

This deployment requires licenses for Immuta and RadiantOne. For more information, refer to the https://www.immuta.com/[Immuta^] and https://www.radiantlogic.com/[Radiant Logic^] websites, respectively. There is no cost to use this Partner Solution, but you will be billed for any AWS services or resources that this Partner Solution deploys. For more information, refer to the https://fwd.aws/rA69w?[AWS Partner Solution General Information Guide^].
3 changes: 3 additions & 0 deletions docs/deployment_guide/partner_editable/overview.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
This guide covers the information you need to deploy the {partner-product-name} Partner Solution in the AWS Cloud.

// For information about using this Partner Solution for migrations, refer to the https://{partner-solution-github-org}.github.io/{partner-solution-project-name}/migration/index.html[Migration Guide^].
89 changes: 89 additions & 0 deletions docs/deployment_guide/partner_editable/post_deployment.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
// Include any postdeployment steps here, such as steps necessary to test that the deployment was successful. If there are no postdeployment steps, leave this file empty.

== Postdeployment steps

=== Sign in to RadiantOne

You must connect to RadiantOne from inside the environment (bastion host) or by configuring your local DNS to point the RadiantOne hostname to the RadiantOne load balancer.

. Navigate to one of the following URLs.
+
* `\http://radiantlogic.example.com:7070`
+
* `\https://radiantlogic.example.com:7171`

. On the RadiantOne main control panel, enter username `cn=directory manager`.
. For the password, enter the value of the `RootPassword` parameter in `dev.yaml`. Refer to link:#_deployment_configuration[Deployment configuration], earlier in this guide.
. Choose *Login*.


=== Sign in to Immuta
. Connect to `\https://immuta.<example.com>`. Replace `<example.com>` with the domain name entered for the `Domain` parameter in `dev.yaml`. Refer to link:#_deployment_configuration[Deployment configuration], earlier in this guide.
. Enter an email address and password to create a new administrator account.
. On the *License* page, choose *Add license key*.
. Enter the Immuta license provided by Immuta.
. Choose *Save*.

=== Immuta AWS GovCloud region support

Immuta comes with support for standard AWS Regions. Complete the following steps to configure AWS GovCloud support in Immuta.

. In Immuta, choose *App Settings*.
. Choose *Advanced Settings*.
. Choose *Advanced Configuration*.
. Enter the following in the *Advanced Configuration* text box.
+
[,bash]
----
client:
awsRegions:
- us-gov-east-1
- us-gov-west-1
----
+
. Choose *Save*

=== Uninstall the Partner Solution
To uninstall the Partner Solution, complete the following steps.

==== Step 1: Run the Lambda *uninstall* functions for Immuta and RadiantOne

. Sign in to the AWS Management Console and open the https://console.aws.amazon.com/lambda/[AWS Lambda console^].
. On the *Functions* page, choose the *data-fabric-security-immuta-uninstall* function.
. On the *Code* tab, choose *Test*.
. On the *Configure test event* window, enter an event name.
. Choose *Save*.
. Choose the *Test* button to run the test.
. Navigate to the *Functions* page.
. Choose the *data-fabric-security-radiantlogic-uninstall* function.
. Repeat steps 3–6.

==== Step 2: Uninstall the deployment stacks

To uninstall the deployment stacks, run the following command.
[,bash]
----
./dfs-solution-uninstall.sh
----

== Additional resources

=== RadiantOne
* https://support.radiantlogic.com/hc/en-us[Radiant Logic Help Center^]
* https://developer.radiantlogic.com/v7.4/architect-guide/getting-started-with-radiantone/[Getting started^]
* https://developer.radiantlogic.com/global-identity-builder-guide/introduction/[Global identities^]
* https://developer.radiantlogic.com/global-identity-builder-guide/create-projects/create-project/[Create a global identity project^]
* https://developer.radiantlogic.com/global-identity-builder-guide/create-projects/create-project/[Add an identity source to a project^]
* https://developer.radiantlogic.com/global-identity-builder-guide/create-projects/upload/[Upload and sync data sources^]
* https://developer.radiantlogic.com/global-identity-builder-guide/concepts/#global-identity-viewer[View global identities^]

=== Immuta

* https://documentation.immuta.com/2023.1/[Immuta documentation^]
* https://documentation.immuta.com/2023.1/2-configure-integration/additional-config/config-builder-guide/#use-existing-identity-access-manager[Configure Identity Manager^]
* https://documentation.immuta.com/2023.1/4-connecting-data/creating-data-sources/storage-technologies/general/query-backed-tutorial/[Add a data source^]
* https://documentation.immuta.com/2023.1/3-writing-global-policies-for-compliance/policies-explained/#global-policies-in-immuta[Global policies in Immuta]
* https://documentation.immuta.com/2023.1/3-writing-global-policies-for-compliance/global-policy-builder/subscription-policy-tutorial/#write-a-global-subscription-policy[Create a global subscription policy^]
* https://documentation.immuta.com/2023.1/3-writing-global-policies-for-compliance/global-policy-builder/data-policy-tutorial/#write-a-global-data-policy[Create a global data policy]
* https://documentation.immuta.com/2023.1/4-connecting-data/managing-data-sources/local-policy-builder/#write-a-local-policy[Create a local policy^]

Loading