0.0.1-beta.1 • Published 11 months ago
@jttc/aws-organizations v0.0.1-beta.1
AWS Organizations Construct Library
AWS Organization
Getting started
Installation
Install the library in your project:
npm install @jttc/aws-organizationyarn add @jttc/aws-organizationUsage
New Organization
To create a new AWS Organization, use the Organization Construct provided. By default, it creates an organization with all FeatureSet.
import { Construct } from 'constructs';
import { Organization } from '@jttc/aws-organizations';
export class OrganizationStack extends Construct {
constructor(scope: Construct, id: string) {
super(scope, id);
new Organization(this, 'Organization');
}
}New Organization Unit from root organization
To create a new AWS Organization Unit, use the OrganizationUnit Construct provided.
import { Construct } from 'constructs';
import { Organization, OrganizationUnit } from '@jttc/aws-organizations';
export class OrganizationStack extends Construct {
constructor(scope: Construct, id: string) {
super(scope, id);
const organization = new Organization(this, 'Organization');
new OrganizationUnit(this, 'WorkloadsOrganizationUnit', {
organizationUnitName: 'workloads',
parent: organization,
});
}
}Create new Account
To create a new Account, use the Account Construct provided.
import { Construct } from 'constructs';
import {
Organization,
OrganizationUnit,
Account,
} from '@jttc/aws-organizations';
export class OrganizationStack extends Construct {
constructor(scope: Construct, id: string) {
super(scope, id);
const organization = new Organization(this, 'Organization');
const workloadOrganizationUnit = new OrganizationUnit(
this,
'WorkloadsOrganizationUnit',
{
organizationUnitName: 'workloads',
parent: organization,
}
);
new Account(this, 'ProdAccount', {
accountName: 'prodc-account',
email: 'prod@example.com'
parent: workloadOrganizationUnit,
});
}
}Service Control Policy
Attached a Service Control Policy to an Organization Unit or an Account
import { Construct } from 'constructs';
import {
Organization,
OrganizationUnit,
Account,
ServiceControlPolicy
} from '@jttc/aws-organizations';
export class OrganizationStack extends Construct {
constructor(scope: Construct, id: string) {
super(scope, id);
const organization = new Organization(this, 'Organization');
const workloadOrganizationUnit = new OrganizationUnit(
this,
'WorkloadsOrganizationUnit',
{
organizationUnitName: 'workloads',
parent: organization,
}
);
new Account(this, 'ProdAccount', {
accountName: 'prodc-account',
email: 'prod@example.com'
parent: workloadOrganizationUnit,
});
const policy = new PolicyStatement({
effect: Effect.ALLOW,
actions: ['s3:*'],
resources: ['*'],
});
new ServiceControlPolicy(stack, 'ServiceControlPolicy', {
name: 'test-policy',
description: 'test policy',
statements: [policy],
targetIds: [workloadOrganizationUnit.organizationUnitId],
});
}
}0.0.1-beta.1
11 months ago
0.0.1-beta.0
2 years ago
0.0.1-alpha.4
2 years ago
0.0.1-alpha.3
2 years ago
0.0.1-alpha.2
2 years ago
0.0.1-alpha.0
2 years ago
0.0.1-alpha.1
2 years ago
0.0.0-alpha.0
2 years ago
0.0.0
2 years ago