Skip to content

Commit 548e686

Browse files
author
awstools
committed
feat(client-accessanalyzer): IAM Access Analyzer now continuously monitors IAM roles and users in your AWS account or organization to generate findings for unused access. Additionally, IAM Access Analyzer now provides custom policy checks to validate that IAM policies adhere to your security standards ahead of deployments.
1 parent 1862f31 commit 548e686

18 files changed

+3538
-93
lines changed

clients/client-accessanalyzer/README.md

Lines changed: 56 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,30 @@
66

77
AWS SDK for JavaScript AccessAnalyzer Client for Node.js, Browser and React Native.
88

9-
<p>Identity and Access Management Access Analyzer helps identify potential resource-access risks by enabling you to
10-
identify any policies that grant access to an external principal. It does this by using
11-
logic-based reasoning to analyze resource-based policies in your Amazon Web Services environment. An
12-
external principal can be another Amazon Web Services account, a root user, an IAM user or role, a
13-
federated user, an Amazon Web Services service, or an anonymous user. You can also use IAM Access Analyzer to
14-
preview and validate public and cross-account access to your resources before deploying
15-
permissions changes. This guide describes the Identity and Access Management Access Analyzer operations that you can
16-
call programmatically. For general information about IAM Access Analyzer, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html">Identity and Access Management Access Analyzer</a> in the <b>IAM User Guide</b>.</p>
17-
<p>To start using IAM Access Analyzer, you first need to create an analyzer.</p>
9+
<p>Identity and Access Management Access Analyzer helps you to set, verify, and refine your IAM policies by providing
10+
a suite of capabilities. Its features include findings for external and unused access,
11+
basic and custom policy checks for validating policies, and policy generation to generate
12+
fine-grained policies. To start using IAM Access Analyzer to identify external or unused access,
13+
you first need to create an analyzer.</p>
14+
<p>
15+
<b>External access analyzers</b> help identify potential risks
16+
of accessing resources by enabling you to identify any resource policies that grant access
17+
to an external principal. It does this by using logic-based reasoning to analyze
18+
resource-based policies in your Amazon Web Services environment. An external principal can be another
19+
Amazon Web Services account, a root user, an IAM user or role, a federated user, an Amazon Web Services service, or an
20+
anonymous user. You can also use IAM Access Analyzer to preview public and cross-account access
21+
to your resources before deploying permissions changes.</p>
22+
<p>
23+
<b>Unused access analyzers</b> help identify potential
24+
identity access risks by enabling you to identify unused IAM roles, unused access keys,
25+
unused console passwords, and IAM principals with unused service and action-level
26+
permissions.</p>
27+
<p>Beyond findings, IAM Access Analyzer provides basic and custom policy checks to validate IAM
28+
policies before deploying permissions changes. You can use policy generation to refine
29+
permissions by attaching a policy generated using access activity logged in CloudTrail logs. </p>
30+
<p>This guide describes the IAM Access Analyzer operations that you can call programmatically.
31+
For general information about IAM Access Analyzer, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html">Identity and Access Management Access Analyzer</a> in the
32+
<b>IAM User Guide</b>.</p>
1833

1934
## Installing
2035

@@ -226,6 +241,22 @@ CancelPolicyGeneration
226241

227242
[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/accessanalyzer/command/CancelPolicyGenerationCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-accessanalyzer/Interface/CancelPolicyGenerationCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-accessanalyzer/Interface/CancelPolicyGenerationCommandOutput/)
228243

244+
</details>
245+
<details>
246+
<summary>
247+
CheckAccessNotGranted
248+
</summary>
249+
250+
[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/accessanalyzer/command/CheckAccessNotGrantedCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-accessanalyzer/Interface/CheckAccessNotGrantedCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-accessanalyzer/Interface/CheckAccessNotGrantedCommandOutput/)
251+
252+
</details>
253+
<details>
254+
<summary>
255+
CheckNoNewAccess
256+
</summary>
257+
258+
[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/accessanalyzer/command/CheckNoNewAccessCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-accessanalyzer/Interface/CheckNoNewAccessCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-accessanalyzer/Interface/CheckNoNewAccessCommandOutput/)
259+
229260
</details>
230261
<details>
231262
<summary>
@@ -306,6 +337,14 @@ GetFinding
306337

307338
[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/accessanalyzer/command/GetFindingCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-accessanalyzer/Interface/GetFindingCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-accessanalyzer/Interface/GetFindingCommandOutput/)
308339

340+
</details>
341+
<details>
342+
<summary>
343+
GetFindingV2
344+
</summary>
345+
346+
[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/accessanalyzer/command/GetFindingV2Command/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-accessanalyzer/Interface/GetFindingV2CommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-accessanalyzer/Interface/GetFindingV2CommandOutput/)
347+
309348
</details>
310349
<details>
311350
<summary>
@@ -362,6 +401,14 @@ ListFindings
362401

363402
[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/accessanalyzer/command/ListFindingsCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-accessanalyzer/Interface/ListFindingsCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-accessanalyzer/Interface/ListFindingsCommandOutput/)
364403

404+
</details>
405+
<details>
406+
<summary>
407+
ListFindingsV2
408+
</summary>
409+
410+
[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/accessanalyzer/command/ListFindingsV2Command/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-accessanalyzer/Interface/ListFindingsV2CommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-accessanalyzer/Interface/ListFindingsV2CommandOutput/)
411+
365412
</details>
366413
<details>
367414
<summary>

clients/client-accessanalyzer/src/AccessAnalyzer.ts

Lines changed: 107 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,16 @@ import {
1313
CancelPolicyGenerationCommandInput,
1414
CancelPolicyGenerationCommandOutput,
1515
} from "./commands/CancelPolicyGenerationCommand";
16+
import {
17+
CheckAccessNotGrantedCommand,
18+
CheckAccessNotGrantedCommandInput,
19+
CheckAccessNotGrantedCommandOutput,
20+
} from "./commands/CheckAccessNotGrantedCommand";
21+
import {
22+
CheckNoNewAccessCommand,
23+
CheckNoNewAccessCommandInput,
24+
CheckNoNewAccessCommandOutput,
25+
} from "./commands/CheckNoNewAccessCommand";
1626
import {
1727
CreateAccessPreviewCommand,
1828
CreateAccessPreviewCommandInput,
@@ -55,6 +65,11 @@ import {
5565
GetArchiveRuleCommandOutput,
5666
} from "./commands/GetArchiveRuleCommand";
5767
import { GetFindingCommand, GetFindingCommandInput, GetFindingCommandOutput } from "./commands/GetFindingCommand";
68+
import {
69+
GetFindingV2Command,
70+
GetFindingV2CommandInput,
71+
GetFindingV2CommandOutput,
72+
} from "./commands/GetFindingV2Command";
5873
import {
5974
GetGeneratedPolicyCommand,
6075
GetGeneratedPolicyCommandInput,
@@ -90,6 +105,11 @@ import {
90105
ListFindingsCommandInput,
91106
ListFindingsCommandOutput,
92107
} from "./commands/ListFindingsCommand";
108+
import {
109+
ListFindingsV2Command,
110+
ListFindingsV2CommandInput,
111+
ListFindingsV2CommandOutput,
112+
} from "./commands/ListFindingsV2Command";
93113
import {
94114
ListPolicyGenerationsCommand,
95115
ListPolicyGenerationsCommandInput,
@@ -135,6 +155,8 @@ import {
135155
const commands = {
136156
ApplyArchiveRuleCommand,
137157
CancelPolicyGenerationCommand,
158+
CheckAccessNotGrantedCommand,
159+
CheckNoNewAccessCommand,
138160
CreateAccessPreviewCommand,
139161
CreateAnalyzerCommand,
140162
CreateArchiveRuleCommand,
@@ -145,13 +167,15 @@ const commands = {
145167
GetAnalyzerCommand,
146168
GetArchiveRuleCommand,
147169
GetFindingCommand,
170+
GetFindingV2Command,
148171
GetGeneratedPolicyCommand,
149172
ListAccessPreviewFindingsCommand,
150173
ListAccessPreviewsCommand,
151174
ListAnalyzedResourcesCommand,
152175
ListAnalyzersCommand,
153176
ListArchiveRulesCommand,
154177
ListFindingsCommand,
178+
ListFindingsV2Command,
155179
ListPolicyGenerationsCommand,
156180
ListTagsForResourceCommand,
157181
StartPolicyGenerationCommand,
@@ -198,6 +222,40 @@ export interface AccessAnalyzer {
198222
cb: (err: any, data?: CancelPolicyGenerationCommandOutput) => void
199223
): void;
200224

225+
/**
226+
* @see {@link CheckAccessNotGrantedCommand}
227+
*/
228+
checkAccessNotGranted(
229+
args: CheckAccessNotGrantedCommandInput,
230+
options?: __HttpHandlerOptions
231+
): Promise<CheckAccessNotGrantedCommandOutput>;
232+
checkAccessNotGranted(
233+
args: CheckAccessNotGrantedCommandInput,
234+
cb: (err: any, data?: CheckAccessNotGrantedCommandOutput) => void
235+
): void;
236+
checkAccessNotGranted(
237+
args: CheckAccessNotGrantedCommandInput,
238+
options: __HttpHandlerOptions,
239+
cb: (err: any, data?: CheckAccessNotGrantedCommandOutput) => void
240+
): void;
241+
242+
/**
243+
* @see {@link CheckNoNewAccessCommand}
244+
*/
245+
checkNoNewAccess(
246+
args: CheckNoNewAccessCommandInput,
247+
options?: __HttpHandlerOptions
248+
): Promise<CheckNoNewAccessCommandOutput>;
249+
checkNoNewAccess(
250+
args: CheckNoNewAccessCommandInput,
251+
cb: (err: any, data?: CheckNoNewAccessCommandOutput) => void
252+
): void;
253+
checkNoNewAccess(
254+
args: CheckNoNewAccessCommandInput,
255+
options: __HttpHandlerOptions,
256+
cb: (err: any, data?: CheckNoNewAccessCommandOutput) => void
257+
): void;
258+
201259
/**
202260
* @see {@link CreateAccessPreviewCommand}
203261
*/
@@ -347,6 +405,17 @@ export interface AccessAnalyzer {
347405
cb: (err: any, data?: GetFindingCommandOutput) => void
348406
): void;
349407

408+
/**
409+
* @see {@link GetFindingV2Command}
410+
*/
411+
getFindingV2(args: GetFindingV2CommandInput, options?: __HttpHandlerOptions): Promise<GetFindingV2CommandOutput>;
412+
getFindingV2(args: GetFindingV2CommandInput, cb: (err: any, data?: GetFindingV2CommandOutput) => void): void;
413+
getFindingV2(
414+
args: GetFindingV2CommandInput,
415+
options: __HttpHandlerOptions,
416+
cb: (err: any, data?: GetFindingV2CommandOutput) => void
417+
): void;
418+
350419
/**
351420
* @see {@link GetGeneratedPolicyCommand}
352421
*/
@@ -454,6 +523,20 @@ export interface AccessAnalyzer {
454523
cb: (err: any, data?: ListFindingsCommandOutput) => void
455524
): void;
456525

526+
/**
527+
* @see {@link ListFindingsV2Command}
528+
*/
529+
listFindingsV2(
530+
args: ListFindingsV2CommandInput,
531+
options?: __HttpHandlerOptions
532+
): Promise<ListFindingsV2CommandOutput>;
533+
listFindingsV2(args: ListFindingsV2CommandInput, cb: (err: any, data?: ListFindingsV2CommandOutput) => void): void;
534+
listFindingsV2(
535+
args: ListFindingsV2CommandInput,
536+
options: __HttpHandlerOptions,
537+
cb: (err: any, data?: ListFindingsV2CommandOutput) => void
538+
): void;
539+
457540
/**
458541
* @see {@link ListPolicyGenerationsCommand}
459542
*/
@@ -592,15 +675,30 @@ export interface AccessAnalyzer {
592675

593676
/**
594677
* @public
595-
* <p>Identity and Access Management Access Analyzer helps identify potential resource-access risks by enabling you to
596-
* identify any policies that grant access to an external principal. It does this by using
597-
* logic-based reasoning to analyze resource-based policies in your Amazon Web Services environment. An
598-
* external principal can be another Amazon Web Services account, a root user, an IAM user or role, a
599-
* federated user, an Amazon Web Services service, or an anonymous user. You can also use IAM Access Analyzer to
600-
* preview and validate public and cross-account access to your resources before deploying
601-
* permissions changes. This guide describes the Identity and Access Management Access Analyzer operations that you can
602-
* call programmatically. For general information about IAM Access Analyzer, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html">Identity and Access Management Access Analyzer</a> in the <b>IAM User Guide</b>.</p>
603-
* <p>To start using IAM Access Analyzer, you first need to create an analyzer.</p>
678+
* <p>Identity and Access Management Access Analyzer helps you to set, verify, and refine your IAM policies by providing
679+
* a suite of capabilities. Its features include findings for external and unused access,
680+
* basic and custom policy checks for validating policies, and policy generation to generate
681+
* fine-grained policies. To start using IAM Access Analyzer to identify external or unused access,
682+
* you first need to create an analyzer.</p>
683+
* <p>
684+
* <b>External access analyzers</b> help identify potential risks
685+
* of accessing resources by enabling you to identify any resource policies that grant access
686+
* to an external principal. It does this by using logic-based reasoning to analyze
687+
* resource-based policies in your Amazon Web Services environment. An external principal can be another
688+
* Amazon Web Services account, a root user, an IAM user or role, a federated user, an Amazon Web Services service, or an
689+
* anonymous user. You can also use IAM Access Analyzer to preview public and cross-account access
690+
* to your resources before deploying permissions changes.</p>
691+
* <p>
692+
* <b>Unused access analyzers</b> help identify potential
693+
* identity access risks by enabling you to identify unused IAM roles, unused access keys,
694+
* unused console passwords, and IAM principals with unused service and action-level
695+
* permissions.</p>
696+
* <p>Beyond findings, IAM Access Analyzer provides basic and custom policy checks to validate IAM
697+
* policies before deploying permissions changes. You can use policy generation to refine
698+
* permissions by attaching a policy generated using access activity logged in CloudTrail logs. </p>
699+
* <p>This guide describes the IAM Access Analyzer operations that you can call programmatically.
700+
* For general information about IAM Access Analyzer, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html">Identity and Access Management Access Analyzer</a> in the
701+
* <b>IAM User Guide</b>.</p>
604702
*/
605703
export class AccessAnalyzer extends AccessAnalyzerClient implements AccessAnalyzer {}
606704
createAggregatedClient(commands, AccessAnalyzer);

0 commit comments

Comments
 (0)