Skip to content

Commit e9ee60b

Browse files
author
awstools
committed
feat(client-iam): This release adds support for accepting encrypted SAML assertions. Customers can now configure their identity provider to encrypt the SAML assertions it sends to IAM.
1 parent e60b3a2 commit e9ee60b

15 files changed

+378
-83
lines changed

clients/client-iam/src/commands/AddRoleToInstanceProfileCommand.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,13 @@ export interface AddRoleToInstanceProfileCommandOutput extends __MetadataBearer
3838
* <p>The caller of this operation must be granted the <code>PassRole</code> permission
3939
* on the IAM role by a permissions policy.</p>
4040
* </note>
41+
* <important>
42+
* <p>When using the <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_iam-condition-keys.html#available-keys-for-iam">iam:AssociatedResourceArn</a> condition in a policy to restrict the <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html">PassRole</a> IAM action, special considerations apply if the policy is
43+
* intended to define access for the <code>AddRoleToInstanceProfile</code> action. In
44+
* this case, you cannot specify a Region or instance ID in the EC2 instance ARN. The
45+
* ARN value must be <code>arn:aws:ec2:*:CallerAccountId:instance/*</code>. Using any
46+
* other ARN value may lead to unexpected evaluation results.</p>
47+
* </important>
4148
* <p> For more information about roles, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html">IAM roles</a> in the
4249
* <i>IAM User Guide</i>. For more information about instance profiles,
4350
* see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html">Using

clients/client-iam/src/commands/CreateSAMLProviderCommand.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,11 @@ import { MetadataBearer as __MetadataBearer } from "@smithy/types";
66

77
import { commonParams } from "../endpoint/EndpointParameters";
88
import { IAMClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../IAMClient";
9-
import { CreateSAMLProviderRequest, CreateSAMLProviderResponse } from "../models/models_0";
9+
import {
10+
CreateSAMLProviderRequest,
11+
CreateSAMLProviderRequestFilterSensitiveLog,
12+
CreateSAMLProviderResponse,
13+
} from "../models/models_0";
1014
import { de_CreateSAMLProviderCommand, se_CreateSAMLProviderCommand } from "../protocols/Aws_query";
1115

1216
/**
@@ -61,6 +65,8 @@ export interface CreateSAMLProviderCommandOutput extends CreateSAMLProviderRespo
6165
* Value: "STRING_VALUE", // required
6266
* },
6367
* ],
68+
* AssertionEncryptionMode: "Required" || "Allowed",
69+
* AddPrivateKey: "STRING_VALUE",
6470
* };
6571
* const command = new CreateSAMLProviderCommand(input);
6672
* const response = await client.send(command);
@@ -124,7 +130,7 @@ export class CreateSAMLProviderCommand extends $Command
124130
})
125131
.s("AWSIdentityManagementV20100508", "CreateSAMLProvider", {})
126132
.n("IAMClient", "CreateSAMLProviderCommand")
127-
.f(void 0, void 0)
133+
.f(CreateSAMLProviderRequestFilterSensitiveLog, void 0)
128134
.ser(se_CreateSAMLProviderCommand)
129135
.de(de_CreateSAMLProviderCommand)
130136
.build() {

clients/client-iam/src/commands/DisableOrganizationsRootCredentialsManagementCommand.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ export interface DisableOrganizationsRootCredentialsManagementCommandOutput
3939
/**
4040
* <p>Disables the management of privileged root user credentials across member accounts in
4141
* your organization. When you disable this feature, the management account and the
42-
* delegated admininstrator for IAM can no longer manage root user credentials for member
42+
* delegated administrator for IAM can no longer manage root user credentials for member
4343
* accounts in your organization.</p>
4444
* @example
4545
* Use a bare-bones client and the command you need to make an API call.
@@ -76,7 +76,7 @@ export interface DisableOrganizationsRootCredentialsManagementCommandOutput
7676
* @throws {@link OrganizationNotInAllFeaturesModeException} (client fault)
7777
* <p>The request was rejected because your organization does not have All features enabled. For
7878
* more information, see <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html#feature-set">Available feature sets</a> in the <i>Organizations User
79-
* Guide</i>.</p>
79+
* Guide</i>.</p>
8080
*
8181
* @throws {@link ServiceAccessNotEnabledException} (client fault)
8282
* <p>The request was rejected because trusted access is not enabled for IAM in Organizations. For details, see IAM and Organizations in the <i>Organizations User Guide</i>.</p>

clients/client-iam/src/commands/DisableOrganizationsRootSessionsCommand.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ export interface DisableOrganizationsRootSessionsCommandOutput
3535
/**
3636
* <p>Disables root user sessions for privileged tasks across member accounts in your
3737
* organization. When you disable this feature, the management account and the delegated
38-
* admininstrator for IAM can no longer perform privileged tasks on member accounts in
38+
* administrator for IAM can no longer perform privileged tasks on member accounts in
3939
* your organization.</p>
4040
* @example
4141
* Use a bare-bones client and the command you need to make an API call.
@@ -72,7 +72,7 @@ export interface DisableOrganizationsRootSessionsCommandOutput
7272
* @throws {@link OrganizationNotInAllFeaturesModeException} (client fault)
7373
* <p>The request was rejected because your organization does not have All features enabled. For
7474
* more information, see <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html#feature-set">Available feature sets</a> in the <i>Organizations User
75-
* Guide</i>.</p>
75+
* Guide</i>.</p>
7676
*
7777
* @throws {@link ServiceAccessNotEnabledException} (client fault)
7878
* <p>The request was rejected because trusted access is not enabled for IAM in Organizations. For details, see IAM and Organizations in the <i>Organizations User Guide</i>.</p>

clients/client-iam/src/commands/EnableOrganizationsRootCredentialsManagementCommand.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ export interface EnableOrganizationsRootCredentialsManagementCommandOutput
3939
/**
4040
* <p>Enables the management of privileged root user credentials across member accounts in your
4141
* organization. When you enable root credentials management for <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#id_root-user-access-management">centralized root access</a>, the management account and the delegated
42-
* admininstrator for IAM can manage root user credentials for member accounts in your
42+
* administrator for IAM can manage root user credentials for member accounts in your
4343
* organization.</p>
4444
* <p>Before you enable centralized root access, you must have an account configured with
4545
* the following settings:</p>
@@ -49,7 +49,7 @@ export interface EnableOrganizationsRootCredentialsManagementCommandOutput
4949
* </li>
5050
* <li>
5151
* <p>Enable trusted access for Identity and Access Management in Organizations. For details, see
52-
* <a href="https://docs.aws.amazon.com/organizations/latest/userguide/services-that-can-integrate-ra.html">IAM and Organizations</a> in the <i>Organizations User
52+
* <a href="https://docs.aws.amazon.com/organizations/latest/userguide/services-that-can-integrate-iam.html">IAM and Organizations</a> in the <i>Organizations User
5353
* Guide</i>.</p>
5454
* </li>
5555
* </ul>
@@ -92,7 +92,7 @@ export interface EnableOrganizationsRootCredentialsManagementCommandOutput
9292
* @throws {@link OrganizationNotInAllFeaturesModeException} (client fault)
9393
* <p>The request was rejected because your organization does not have All features enabled. For
9494
* more information, see <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html#feature-set">Available feature sets</a> in the <i>Organizations User
95-
* Guide</i>.</p>
95+
* Guide</i>.</p>
9696
*
9797
* @throws {@link ServiceAccessNotEnabledException} (client fault)
9898
* <p>The request was rejected because trusted access is not enabled for IAM in Organizations. For details, see IAM and Organizations in the <i>Organizations User Guide</i>.</p>

clients/client-iam/src/commands/EnableOrganizationsRootSessionsCommand.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ export interface EnableOrganizationsRootSessionsCommandOutput
8787
* @throws {@link OrganizationNotInAllFeaturesModeException} (client fault)
8888
* <p>The request was rejected because your organization does not have All features enabled. For
8989
* more information, see <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html#feature-set">Available feature sets</a> in the <i>Organizations User
90-
* Guide</i>.</p>
90+
* Guide</i>.</p>
9191
*
9292
* @throws {@link ServiceAccessNotEnabledException} (client fault)
9393
* <p>The request was rejected because trusted access is not enabled for IAM in Organizations. For details, see IAM and Organizations in the <i>Organizations User Guide</i>.</p>

clients/client-iam/src/commands/GetCredentialReportCommand.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ export interface GetCredentialReportCommandOutput extends GetCredentialReportRes
5858
* <p>The request was rejected because the most recent credential report has expired. To
5959
* generate a new credential report, use <a>GenerateCredentialReport</a>. For more
6060
* information about credential report expiration, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/credential-reports.html">Getting credential reports</a> in the
61-
* <i>IAM User Guide</i>.</p>
61+
* <i>IAM User Guide</i>.</p>
6262
*
6363
* @throws {@link CredentialReportNotPresentException} (client fault)
6464
* <p>The request was rejected because the credential report does not exist. To generate a

clients/client-iam/src/commands/GetSAMLProviderCommand.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ export interface GetSAMLProviderCommandOutput extends GetSAMLProviderResponse, _
4545
* const command = new GetSAMLProviderCommand(input);
4646
* const response = await client.send(command);
4747
* // { // GetSAMLProviderResponse
48+
* // SAMLProviderUUID: "STRING_VALUE",
4849
* // SAMLMetadataDocument: "STRING_VALUE",
4950
* // CreateDate: new Date("TIMESTAMP"),
5051
* // ValidUntil: new Date("TIMESTAMP"),
@@ -54,6 +55,13 @@ export interface GetSAMLProviderCommandOutput extends GetSAMLProviderResponse, _
5455
* // Value: "STRING_VALUE", // required
5556
* // },
5657
* // ],
58+
* // AssertionEncryptionMode: "Required" || "Allowed",
59+
* // PrivateKeyList: [ // privateKeyList
60+
* // { // SAMLPrivateKey
61+
* // KeyId: "STRING_VALUE",
62+
* // Timestamp: new Date("TIMESTAMP"),
63+
* // },
64+
* // ],
5765
* // };
5866
*
5967
* ```

clients/client-iam/src/commands/ListAccountAliasesCommand.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@ export interface ListAccountAliasesCommandOutput extends ListAccountAliasesRespo
2929

3030
/**
3131
* <p>Lists the account alias associated with the Amazon Web Services account (Note: you can have only
32-
* one). For information about using an Amazon Web Services account alias, see <a href="https://docs.aws.amazon.com/signin/latest/userguide/CreateAccountAlias.html">Creating,
33-
* deleting, and listing an Amazon Web Services account alias</a> in the <i>Amazon Web Services Sign-In
34-
* User Guide</i>.</p>
32+
* one). For information about using an Amazon Web Services account alias, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/console_account-alias.html#CreateAccountAlias">Creating,
33+
* deleting, and listing an Amazon Web Services account alias</a> in the
34+
* <i>IAM User Guide</i>.</p>
3535
* @example
3636
* Use a bare-bones client and the command you need to make an API call.
3737
* ```javascript

clients/client-iam/src/commands/ListOrganizationsFeaturesCommand.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ export interface ListOrganizationsFeaturesCommandOutput extends ListOrganization
6565
* @throws {@link OrganizationNotInAllFeaturesModeException} (client fault)
6666
* <p>The request was rejected because your organization does not have All features enabled. For
6767
* more information, see <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html#feature-set">Available feature sets</a> in the <i>Organizations User
68-
* Guide</i>.</p>
68+
* Guide</i>.</p>
6969
*
7070
* @throws {@link ServiceAccessNotEnabledException} (client fault)
7171
* <p>The request was rejected because trusted access is not enabled for IAM in Organizations. For details, see IAM and Organizations in the <i>Organizations User Guide</i>.</p>

clients/client-iam/src/commands/UpdateSAMLProviderCommand.ts

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,11 @@ import { MetadataBearer as __MetadataBearer } from "@smithy/types";
66

77
import { commonParams } from "../endpoint/EndpointParameters";
88
import { IAMClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../IAMClient";
9-
import { UpdateSAMLProviderRequest, UpdateSAMLProviderResponse } from "../models/models_1";
9+
import {
10+
UpdateSAMLProviderRequest,
11+
UpdateSAMLProviderRequestFilterSensitiveLog,
12+
UpdateSAMLProviderResponse,
13+
} from "../models/models_1";
1014
import { de_UpdateSAMLProviderCommand, se_UpdateSAMLProviderCommand } from "../protocols/Aws_query";
1115

1216
/**
@@ -28,19 +32,21 @@ export interface UpdateSAMLProviderCommandInput extends UpdateSAMLProviderReques
2832
export interface UpdateSAMLProviderCommandOutput extends UpdateSAMLProviderResponse, __MetadataBearer {}
2933

3034
/**
31-
* <p>Updates the metadata document for an existing SAML provider resource object.</p>
32-
* <note>
33-
* <p>This operation requires <a href="https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html">Signature Version 4</a>.</p>
34-
* </note>
35+
* <p>Updates the metadata document, SAML encryption settings, and private keys for an
36+
* existing SAML provider. To rotate private keys, add your new private key and then remove
37+
* the old key in a separate request.</p>
3538
* @example
3639
* Use a bare-bones client and the command you need to make an API call.
3740
* ```javascript
3841
* import { IAMClient, UpdateSAMLProviderCommand } from "@aws-sdk/client-iam"; // ES Modules import
3942
* // const { IAMClient, UpdateSAMLProviderCommand } = require("@aws-sdk/client-iam"); // CommonJS import
4043
* const client = new IAMClient(config);
4144
* const input = { // UpdateSAMLProviderRequest
42-
* SAMLMetadataDocument: "STRING_VALUE", // required
45+
* SAMLMetadataDocument: "STRING_VALUE",
4346
* SAMLProviderArn: "STRING_VALUE", // required
47+
* AssertionEncryptionMode: "Required" || "Allowed",
48+
* AddPrivateKey: "STRING_VALUE",
49+
* RemovePrivateKey: "STRING_VALUE",
4450
* };
4551
* const command = new UpdateSAMLProviderCommand(input);
4652
* const response = await client.send(command);
@@ -94,7 +100,7 @@ export class UpdateSAMLProviderCommand extends $Command
94100
})
95101
.s("AWSIdentityManagementV20100508", "UpdateSAMLProvider", {})
96102
.n("IAMClient", "UpdateSAMLProviderCommand")
97-
.f(void 0, void 0)
103+
.f(UpdateSAMLProviderRequestFilterSensitiveLog, void 0)
98104
.ser(se_UpdateSAMLProviderCommand)
99105
.de(de_UpdateSAMLProviderCommand)
100106
.build() {

0 commit comments

Comments
 (0)