1.0.4 • Published 2 years ago

aws-cdk-organization-configrule v1.0.4

Weekly downloads
-
License
ISC
Repository
github
Last release
2 years ago

Overview

CDK construct library to deploy config rule for organizations simply.

Prerequisites

Before using , you should set up for root or audit account enable config rule to organizations.
for more detail , see ※1 https://docs.aws.amazon.com/config/latest/developerguide/config-rule-multi-account-deployment.html

CLI command

auditAccount="xxxxxxxxx" # only when delegate
aws organizations register-delegated-administrator --account-id ${auditAccount}  --service-principal config.amazonaws.com
aws organizations enable-aws-service-access --service-principal=config-multiaccountsetup.amazonaws.com
aws organizations register-delegated-administrator --service-principal=config-multiaccountsetup.amazonaws.com --account-id ${auditAccount}

How to use

you can specify inputParameters as needed like below example.

import { AwsCdkOrganizationConfigrule } from 'aws-cdk-organization-configrule';

// example
new AwsCdkOrganizationConfigrule(this, 'OrgConfig',{
  configRulesAll: [
    { ruleIdentifier: "DYNAMODB_TABLE_ENCRYPTED_KMS" },
    {
      ruleIdentifier: "CW_LOGGROUP_RETENTION_PERIOD_CHECK",
      inputParameters: '{"MinRetentionTime":"1827"}',
    }
  ]

})

Option settings

when deploing to multi region, if you add rule to only us-east-1 , use configRulesOnlyUsEast1 option.

new AwsCdkOrganizationConfigrule(this, "OrgConfig", {
  configRulesAll: [
    { ruleIdentifier: "DYNAMODB_TABLE_ENCRYPTED_KMS" },
    {
      ruleIdentifier: "CW_LOGGROUP_RETENTION_PERIOD_CHECK",
      inputParameters: '{"MinRetentionTime":"1827"}',
    },
  ],
  configRulesOnlyUsEast1:[
    { ruleIdentifier: "CLOUDFRONT_ASSOCIATED_WITH_WAF" },
  ]
});

when not deploying to specific aws accounts, use configExcludedAccounts option.

    new AwsCdkOrganizationConfigrule(this, "OrgConfig", {
      configRulesAll: [
        { ruleIdentifier: "DYNAMODB_TABLE_ENCRYPTED_KMS" },
        {
          ruleIdentifier: "CW_LOGGROUP_RETENTION_PERIOD_CHECK",
          inputParameters: '{"MinRetentionTime":"1827"}',
        },
      ],
      configRulesOnlyUsEast1:[
        { ruleIdentifier: "CLOUDFRONT_ASSOCIATED_WITH_WAF" },
      ],
      configExcludedAccounts: ["111111111111", "222222222222"]
    });

acornababacorn-walkacorn-globalsagent-baseansi-escapesansi-regexansi-stylesanymatchargparsearr-diffarr-unionarr-flattenarray-uniqueassign-symbolsasynckitatobbabel-jestbabel-plugin-istanbulbabel-plugin-jest-hoistbabel-preset-current-node-syntaxbalanced-matchbrace-expansionbracesbasebabel-preset-jestbrowser-process-hrtimebrowserslistbserbs-loggercallsitescache-basebuffer-fromcamelcasecaniuse-litecapture-exitchalkchar-regexci-infocjs-module-lexerclass-utilscliuicollect-v8-coveragecocollection-visitcolor-namecombined-streamcomponent-emitterconcat-mapconvert-source-mapcopy-descriptorcross-spawncssomdata-urlscssstyledebugdecode-uri-componentdeep-isdecimal.jsdeepmergedefine-propertydelayed-streamdetect-newlinedomexceptionelectron-to-chromiumemitteryemoji-regexend-of-streamerror-exescape-string-regexpescodegenestraverseesprimaesutilsexec-shexecaexitexpand-bracketsexpectextend-shallowextglobfast-json-stable-stringifyfast-levenshteinfb-watchmanfill-rangefind-upfor-infragment-cachecolor-convertfseventsform-datafunction-bindget-caller-filegensyncget-package-typeget-valueget-streamfs.realpathglobalsglobgrowlygraceful-fshashas-flaghas-valuehas-valueshosted-git-infohtml-escaperhttp-proxy-agenthuman-signalshttps-proxy-agentimport-localiconv-liteinflightimurmurhashinheritsis-accessor-descriptoris-arrayishis-bufferis-ciis-core-moduleis-data-descriptoris-descriptoris-extendableis-dockeris-generator-fnis-fullwidth-code-pointis-numberis-plain-objectis-streamis-windowsis-potential-custom-element-nameis-typedarrayis-wslisexeisarrayisobjectistanbul-lib-instrumentistanbul-lib-coverageistanbul-lib-source-mapsistanbul-lib-reportistanbul-reportsjest-changed-filesjest-clijest-docblockjest-eachjest-environment-jsdomescaladejest-haste-mapjest-environment-nodejest-get-typejest-jasmine2jest-leak-detectorjest-message-utiljest-matcher-utilsjest-mockjest-pnp-resolverjest-resolvejest-regex-utiljest-resolve-dependenciesjest-runnerjest-serializerjest-runtimejest-utiljest-validatejest-watcherjs-tokensjest-workerjs-yamljsdomjest-snapshotjsescjson5json-parse-even-better-errorskind-ofkleurlevenlevnlines-and-columnslodashlru-cachemake-dirjest-diffmakeerrormap-cachemap-visitmerge-streammicromatchmime-dbmimic-fnmime-typesminimatchminimistmixin-deepmkdirpmsnanomatchnatural-comparenice-trynode-int64node-notifiernode-releasesnormalize-package-datanormalize-pathnpm-run-pathobject-visitnwsapiobject-copyobject.pickoncemake-erroronetimep-each-seriesoptionatorp-finallyp-locatep-limitp-tryparse5pascalcasepath-existspath-keylocate-pathpath-parsepicomatchpiratespkg-dirprelude-lsposix-character-classespretty-formatpslpromptspunycoderead-pkgreact-isread-pkg-updiff-sequencesregex-notremove-trailing-separatorrepeat-elementrepeat-stringrequire-directoryrequire-main-filenameresolve-cwdresolveresolve-fromresolve-urlretrimrafparse-jsonsafe-regexpicocolorssafer-buffersanesaxessemverset-blockingset-valueshebang-commandshebang-regexshellwordssignal-exitsisteransisafe-buffersnapdragonsnapdragon-utilsnapdragon-nodesource-mapsource-map-resolvesource-map-supportspdx-correctsource-map-urlspdx-exceptionsspdx-expression-parsespdx-license-idssplit-stringsprintf-jsstack-utilsstatic-extendstrip-ansistring-widthstrip-bomstring-lengthstrip-eofstrip-final-newlinesupports-hyperlinksrsvpsymbol-treetest-excludethroatslashtmplto-fast-propertiesto-object-pathto-regexto-regex-rangeterminal-linktough-cookietr46type-detectsupports-colortype-checkunion-valuetype-festtypedarray-to-bufferuniversalifyunset-valueurixuseuuidv8-to-istanbulw3c-hr-timevalidate-npm-package-licensew3c-xmlserializerwalkerwhatwg-mimetypewhatwg-encodingwebidl-conversionswhatwg-urlwhichwhich-moduleword-wrapwrap-ansiwrappywrite-file-atomicpath-is-absolutewsxml-name-validatorxmlcharsy18nyallistpumphtml-encoding-snifferyargs-parseryargsdecamelize
1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago