/** *
The identifiers for the temporary security credentials that the operation * returns.
* @public */ export interface AssumedRoleUser { /** *A unique identifier that contains the role ID and the role session name of the role that * is being assumed. The role ID is generated by Amazon Web Services when the role is created.
* @public */ AssumedRoleId: string | undefined; /** *The ARN of the temporary security credentials that are returned from the AssumeRole action. For more information about ARNs and how to use them in * policies, see IAM Identifiers in the * IAM User Guide.
* @public */ Arn: string | undefined; } /** *A reference to the IAM managed policy that is passed as a session policy for a role * session or a federated user session.
* @public */ export interface PolicyDescriptorType { /** *The Amazon Resource Name (ARN) of the IAM managed policy to use as a session policy * for the role. For more information about ARNs, see Amazon Resource Names (ARNs) and Amazon Web Services * Service Namespaces in the Amazon Web Services General Reference.
* @public */ arn?: string | undefined; } /** *Contains information about the provided context. This includes the signed and encrypted * trusted context assertion and the context provider ARN from which the trusted context * assertion was generated.
* @public */ export interface ProvidedContext { /** *The context provider ARN from which the trusted context assertion was generated.
* @public */ ProviderArn?: string | undefined; /** *The signed and encrypted trusted context assertion generated by the context provider. * The trusted context assertion is signed and encrypted by Amazon Web Services STS.
* @public */ ContextAssertion?: string | undefined; } /** *You can pass custom key-value pair attributes when you assume a role or federate a user. * These are called session tags. You can then use the session tags to control access to * resources. For more information, see Tagging Amazon Web Services STS Sessions in the * IAM User Guide.
* @public */ export interface Tag { /** *The key for a session tag.
*You can pass up to 50 session tags. The plain text session tag keys can’t exceed 128 * characters. For these and additional limits, see IAM * and STS Character Limits in the IAM User Guide.
* @public */ Key: string | undefined; /** *The value for a session tag.
*You can pass up to 50 session tags. The plain text session tag values can’t exceed 256 * characters. For these and additional limits, see IAM * and STS Character Limits in the IAM User Guide.
* @public */ Value: string | undefined; } /** * @public */ export interface AssumeRoleRequest { /** *The Amazon Resource Name (ARN) of the role to assume.
* @public */ RoleArn: string | undefined; /** *An identifier for the assumed role session.
*Use the role session name to uniquely identify a session when the same role is assumed * by different principals or for different reasons. In cross-account scenarios, the role * session name is visible to, and can be logged by the account that owns the role. The role * session name is also used in the ARN of the assumed role principal. This means that * subsequent cross-account API requests that use the temporary security credentials will * expose the role session name to the external account in their CloudTrail logs.
*For security purposes, administrators can view this field in CloudTrail logs to help identify who performed an action in Amazon Web Services. Your
* administrator might require that you specify your user name as the session name when you
* assume the role. For more information, see
* sts:RoleSessionName
* .
The regex used to validate this parameter is a string of * characters consisting of upper- and lower-case alphanumeric characters with no spaces. * You can also include underscores or any of the following characters: +=,.@-
* @public */ RoleSessionName: string | undefined; /** *The Amazon Resource Names (ARNs) of the IAM managed policies that you want to use as * managed session policies. The policies must exist in the same account as the role.
*This parameter is optional. You can provide up to 10 managed policy ARNs. However, the * plaintext that you use for both inline and managed session policies can't exceed 2,048 * characters. For more information about ARNs, see Amazon Resource Names (ARNs) and Amazon Web Services * Service Namespaces in the Amazon Web Services General Reference.
*An Amazon Web Services conversion compresses the passed inline session policy, managed policy ARNs,
* and session tags into a packed binary format that has a separate limit. Your request can
* fail for this limit even if your plaintext meets the other requirements. The
* PackedPolicySize response element indicates by percentage how close the
* policies and tags for your request are to the upper size limit.
Passing policies to this operation returns new * temporary credentials. The resulting session's permissions are the intersection of the * role's identity-based policy and the session policies. You can use the role's temporary * credentials in subsequent Amazon Web Services API calls to access resources in the account that owns * the role. You cannot use session policies to grant more permissions than those allowed * by the identity-based policy of the role that is being assumed. For more information, see * Session * Policies in the IAM User Guide.
* @public */ PolicyArns?: PolicyDescriptorType[] | undefined; /** *An IAM policy in JSON format that you want to use as an inline session policy.
*This parameter is optional. Passing policies to this operation returns new * temporary credentials. The resulting session's permissions are the intersection of the * role's identity-based policy and the session policies. You can use the role's temporary * credentials in subsequent Amazon Web Services API calls to access resources in the account that owns * the role. You cannot use session policies to grant more permissions than those allowed * by the identity-based policy of the role that is being assumed. For more information, see * Session * Policies in the IAM User Guide.
*The plaintext that you use for both inline and managed session policies can't exceed * 2,048 characters. The JSON policy characters can be any ASCII character from the space * character to the end of the valid character list (\u0020 through \u00FF). It can also * include the tab (\u0009), linefeed (\u000A), and carriage return (\u000D) * characters.
*An Amazon Web Services conversion compresses the passed inline session policy, managed policy ARNs,
* and session tags into a packed binary format that has a separate limit. Your request can
* fail for this limit even if your plaintext meets the other requirements. The
* PackedPolicySize response element indicates by percentage how close the
* policies and tags for your request are to the upper size limit.
For more information about role session permissions, see Session * policies.
* @public */ Policy?: string | undefined; /** *The duration, in seconds, of the role session. The value specified can range from 900 * seconds (15 minutes) up to the maximum session duration set for the role. The maximum * session duration setting can have a value from 1 hour to 12 hours. If you specify a value * higher than this setting or the administrator setting (whichever is lower), the operation * fails. For example, if you specify a session duration of 12 hours, but your administrator * set the maximum session duration to 6 hours, your operation fails.
*Role chaining limits your Amazon Web Services CLI or Amazon Web Services API role session to a maximum of one hour.
* When you use the AssumeRole API operation to assume a role, you can specify
* the duration of your role session with the DurationSeconds parameter. You can
* specify a parameter value of up to 43200 seconds (12 hours), depending on the maximum
* session duration setting for your role. However, if you assume a role using role chaining
* and provide a DurationSeconds parameter value greater than one hour, the
* operation fails. To learn how to view the maximum value for your role, see Update the maximum session duration for a role.
By default, the value is set to 3600 seconds.
The DurationSeconds parameter is separate from the duration of a console
* session that you might request using the returned credentials. The request to the
* federation endpoint for a console sign-in token takes a SessionDuration
* parameter that specifies the maximum length of the console session. For more
* information, see Creating a URL
* that Enables Federated Users to Access the Amazon Web Services Management Console in the
* IAM User Guide.
A list of session tags that you want to pass. Each session tag consists of a key name * and an associated value. For more information about session tags, see Tagging Amazon Web Services STS * Sessions in the IAM User Guide.
*This parameter is optional. You can pass up to 50 session tags. The plaintext session * tag keys can’t exceed 128 characters, and the values can’t exceed 256 characters. For these * and additional limits, see IAM * and STS Character Limits in the IAM User Guide.
*An Amazon Web Services conversion compresses the passed inline session policy, managed policy ARNs,
* and session tags into a packed binary format that has a separate limit. Your request can
* fail for this limit even if your plaintext meets the other requirements. The
* PackedPolicySize response element indicates by percentage how close the
* policies and tags for your request are to the upper size limit.
You can pass a session tag with the same key as a tag that is already attached to the * role. When you do, session tags override a role tag with the same key.
*Tag key–value pairs are not case sensitive, but case is preserved. This means that you
* cannot have separate Department and department tag keys. Assume
* that the role has the Department=Marketing tag and you pass the
* department=engineering session tag. Department
* and department are not saved as separate tags, and the session tag passed in
* the request takes precedence over the role tag.
Additionally, if you used temporary credentials to perform this operation, the new * session inherits any transitive session tags from the calling session. If you pass a * session tag with the same key as an inherited tag, the operation fails. To view the * inherited tags for a session, see the CloudTrail logs. For more information, see Viewing Session Tags in CloudTrail in the * IAM User Guide.
* @public */ Tags?: Tag[] | undefined; /** *A list of keys for session tags that you want to set as transitive. If you set a tag key * as transitive, the corresponding key and value passes to subsequent sessions in a role * chain. For more information, see Chaining Roles * with Session Tags in the IAM User Guide.
*This parameter is optional. The transitive status of a session tag does not impact its * packed binary size.
*If you choose not to specify a transitive tag key, then no tags are passed from this * session to any subsequent sessions.
* @public */ TransitiveTagKeys?: string[] | undefined; /** *A unique identifier that might be required when you assume a role in another account. If
* the administrator of the account to which the role belongs provided you with an external
* ID, then provide that value in the ExternalId parameter. This value can be any
* string, such as a passphrase or account number. A cross-account role is usually set up to
* trust everyone in an account. Therefore, the administrator of the trusting account might
* send an external ID to the administrator of the trusted account. That way, only someone
* with the ID can assume the role, rather than everyone in the account. For more information
* about the external ID, see How to Use an External ID
* When Granting Access to Your Amazon Web Services Resources to a Third Party in the
* IAM User Guide.
The regex used to validate this parameter is a string of * characters consisting of upper- and lower-case alphanumeric characters with no spaces. * You can also include underscores or any of the following characters: +=,.@:\/-
* @public */ ExternalId?: string | undefined; /** *The identification number of the MFA device that is associated with the user who is
* making the AssumeRole call. Specify this value if the trust policy of the role
* being assumed includes a condition that requires MFA authentication. The value is either
* the serial number for a hardware device (such as GAHT12345678) or an Amazon
* Resource Name (ARN) for a virtual device (such as
* arn:aws:iam::123456789012:mfa/user).
The regex used to validate this parameter is a string of * characters consisting of upper- and lower-case alphanumeric characters with no spaces. * You can also include underscores or any of the following characters: +=/:,.@-
* @public */ SerialNumber?: string | undefined; /** *The value provided by the MFA device, if the trust policy of the role being assumed
* requires MFA. (In other words, if the policy includes a condition that tests for MFA). If
* the role being assumed requires MFA and if the TokenCode value is missing or
* expired, the AssumeRole call returns an "access denied" error.
The format for this parameter, as described by its regex pattern, is a sequence of six * numeric digits.
* @public */ TokenCode?: string | undefined; /** *The source identity specified by the principal that is calling the
* AssumeRole operation. The source identity value persists across chained role sessions.
You can require users to specify a source identity when they assume a role. You do this
* by using the
* sts:SourceIdentity
* condition key in a role trust policy. You
* can use source identity information in CloudTrail logs to determine who took actions with a
* role. You can use the aws:SourceIdentity condition key to further control
* access to Amazon Web Services resources based on the value of source identity. For more information about
* using source identity, see Monitor and control
* actions taken with assumed roles in the
* IAM User Guide.
The regex used to validate this parameter is a string of characters consisting of upper-
* and lower-case alphanumeric characters with no spaces. You can also include underscores or
* any of the following characters: +=,.@-. You cannot use a value that begins with the text
* aws:. This prefix is reserved for Amazon Web Services internal use.
A list of previously acquired trusted context assertions in the format of a JSON array. * The trusted context assertion is signed and encrypted by Amazon Web Services STS.
*The following is an example of a ProvidedContext value that includes a
* single trusted context assertion and the ARN of the context provider from which the trusted
* context assertion was generated.
* [\{"ProviderArn":"arn:aws:iam::aws:contextProvider/IdentityCenter","ContextAssertion":"trusted-context-assertion"\}]
*
Amazon Web Services credentials for API authentication.
* @public */ export interface Credentials { /** *The access key ID that identifies the temporary security credentials.
* @public */ AccessKeyId: string | undefined; /** *The secret access key that can be used to sign requests.
* @public */ SecretAccessKey: string | undefined; /** *The token that users must pass to the service API to use the temporary * credentials.
* @public */ SessionToken: string | undefined; /** *The date on which the current credentials expire.
* @public */ Expiration: Date | undefined; } /** *Contains the response to a successful AssumeRole request, including * temporary Amazon Web Services credentials that can be used to make Amazon Web Services requests.
* @public */ export interface AssumeRoleResponse { /** *The temporary security credentials, which include an access key ID, a secret access key, * and a security (or session) token.
*The size of the security token that STS API operations return is not fixed. We * strongly recommend that you make no assumptions about the maximum size.
*The Amazon Resource Name (ARN) and the assumed role ID, which are identifiers that you
* can use to refer to the resulting temporary security credentials. For example, you can
* reference these credentials as a principal in a resource-based policy by using the ARN or
* assumed role ID. The ARN and ID include the RoleSessionName that you specified
* when you called AssumeRole.
A percentage value that indicates the packed size of the session policies and session * tags combined passed in the request. The request fails if the packed size is greater than 100 percent, * which means the policies and tags exceeded the allowed space.
* @public */ PackedPolicySize?: number | undefined; /** *The source identity specified by the principal that is calling the
* AssumeRole operation.
You can require users to specify a source identity when they assume a role. You do this
* by using the sts:SourceIdentity condition key in a role trust policy. You can
* use source identity information in CloudTrail logs to determine who took actions with a role.
* You can use the aws:SourceIdentity condition key to further control access to
* Amazon Web Services resources based on the value of source identity. For more information about using
* source identity, see Monitor and control
* actions taken with assumed roles in the
* IAM User Guide.
The regex used to validate this parameter is a string of characters consisting of upper- * and lower-case alphanumeric characters with no spaces. You can also include underscores or * any of the following characters: =,.@-
* @public */ SourceIdentity?: string | undefined; } /** * @public */ export interface AssumeRoleWithWebIdentityRequest { /** *The Amazon Resource Name (ARN) of the role that the caller is assuming.
*Additional considerations apply to Amazon Cognito identity pools that assume cross-account IAM roles. The trust policies of these roles must accept the
* cognito-identity.amazonaws.com service principal and must contain the
* cognito-identity.amazonaws.com:aud condition key to restrict role
* assumption to users from your intended identity pools. A policy that trusts Amazon Cognito
* identity pools without this condition creates a risk that a user from an unintended
* identity pool can assume the role. For more information, see Trust policies for
* IAM roles in Basic (Classic) authentication in the Amazon Cognito
* Developer Guide.
An identifier for the assumed role session. Typically, you pass the name or identifier
* that is associated with the user who is using your application. That way, the temporary
* security credentials that your application will use are associated with that user. This
* session name is included as part of the ARN and assumed role ID in the
* AssumedRoleUser response element.
For security purposes, administrators can view this field in CloudTrail logs to help identify who performed an action in Amazon Web Services. Your
* administrator might require that you specify your user name as the session name when you
* assume the role. For more information, see
* sts:RoleSessionName
* .
The regex used to validate this parameter is a string of characters * consisting of upper- and lower-case alphanumeric characters with no spaces. You can * also include underscores or any of the following characters: =,.@-
* @public */ RoleSessionName: string | undefined; /** *The OAuth 2.0 access token or OpenID Connect ID token that is provided by the identity
* provider. Your application must get this token by authenticating the user who is using your
* application with a web identity provider before the application makes an
* AssumeRoleWithWebIdentity call. Timestamps in the token must be formatted
* as either an integer or a long integer. Tokens must be signed using either RSA keys (RS256,
* RS384, or RS512) or ECDSA keys (ES256, ES384, or ES512).
The fully qualified host component of the domain name of the OAuth 2.0 identity * provider. Do not specify this value for an OpenID Connect identity provider.
*Currently www.amazon.com and graph.facebook.com are the only
* supported identity providers for OAuth 2.0 access tokens. Do not include URL schemes and
* port numbers.
Do not specify this value for OpenID Connect ID tokens.
* @public */ ProviderId?: string | undefined; /** *The Amazon Resource Names (ARNs) of the IAM managed policies that you want to use as * managed session policies. The policies must exist in the same account as the role.
*This parameter is optional. You can provide up to 10 managed policy ARNs. However, the * plaintext that you use for both inline and managed session policies can't exceed 2,048 * characters. For more information about ARNs, see Amazon Resource Names (ARNs) and Amazon Web Services * Service Namespaces in the Amazon Web Services General Reference.
*An Amazon Web Services conversion compresses the passed inline session policy, managed policy ARNs,
* and session tags into a packed binary format that has a separate limit. Your request can
* fail for this limit even if your plaintext meets the other requirements. The
* PackedPolicySize response element indicates by percentage how close the
* policies and tags for your request are to the upper size limit.
Passing policies to this operation returns new * temporary credentials. The resulting session's permissions are the intersection of the * role's identity-based policy and the session policies. You can use the role's temporary * credentials in subsequent Amazon Web Services API calls to access resources in the account that owns * the role. You cannot use session policies to grant more permissions than those allowed * by the identity-based policy of the role that is being assumed. For more information, see * Session * Policies in the IAM User Guide.
* @public */ PolicyArns?: PolicyDescriptorType[] | undefined; /** *An IAM policy in JSON format that you want to use as an inline session policy.
*This parameter is optional. Passing policies to this operation returns new * temporary credentials. The resulting session's permissions are the intersection of the * role's identity-based policy and the session policies. You can use the role's temporary * credentials in subsequent Amazon Web Services API calls to access resources in the account that owns * the role. You cannot use session policies to grant more permissions than those allowed * by the identity-based policy of the role that is being assumed. For more information, see * Session * Policies in the IAM User Guide.
*The plaintext that you use for both inline and managed session policies can't exceed * 2,048 characters. The JSON policy characters can be any ASCII character from the space * character to the end of the valid character list (\u0020 through \u00FF). It can also * include the tab (\u0009), linefeed (\u000A), and carriage return (\u000D) * characters.
*For more information about role session permissions, see Session * policies.
*An Amazon Web Services conversion compresses the passed inline session policy, managed policy ARNs,
* and session tags into a packed binary format that has a separate limit. Your request can
* fail for this limit even if your plaintext meets the other requirements. The
* PackedPolicySize response element indicates by percentage how close the
* policies and tags for your request are to the upper size limit.
The duration, in seconds, of the role session. The value can range from 900 seconds (15 * minutes) up to the maximum session duration setting for the role. This setting can have a * value from 1 hour to 12 hours. If you specify a value higher than this setting, the * operation fails. For example, if you specify a session duration of 12 hours, but your * administrator set the maximum session duration to 6 hours, your operation fails. To learn * how to view the maximum value for your role, see View the * Maximum Session Duration Setting for a Role in the * IAM User Guide.
*By default, the value is set to 3600 seconds.
The DurationSeconds parameter is separate from the duration of a console
* session that you might request using the returned credentials. The request to the
* federation endpoint for a console sign-in token takes a SessionDuration
* parameter that specifies the maximum length of the console session. For more
* information, see Creating a URL
* that Enables Federated Users to Access the Amazon Web Services Management Console in the
* IAM User Guide.
Contains the response to a successful AssumeRoleWithWebIdentity * request, including temporary Amazon Web Services credentials that can be used to make Amazon Web Services requests.
* @public */ export interface AssumeRoleWithWebIdentityResponse { /** *The temporary security credentials, which include an access key ID, a secret access key, * and a security token.
*The size of the security token that STS API operations return is not fixed. We * strongly recommend that you make no assumptions about the maximum size.
*The unique user identifier that is returned by the identity provider. This identifier is
* associated with the WebIdentityToken that was submitted with the
* AssumeRoleWithWebIdentity call. The identifier is typically unique to the
* user and the application that acquired the WebIdentityToken (pairwise
* identifier). For OpenID Connect ID tokens, this field contains the value returned by the
* identity provider as the token's sub (Subject) claim.
The Amazon Resource Name (ARN) and the assumed role ID, which are identifiers that you
* can use to refer to the resulting temporary security credentials. For example, you can
* reference these credentials as a principal in a resource-based policy by using the ARN or
* assumed role ID. The ARN and ID include the RoleSessionName that you specified
* when you called AssumeRole.
A percentage value that indicates the packed size of the session policies and session * tags combined passed in the request. The request fails if the packed size is greater than 100 percent, * which means the policies and tags exceeded the allowed space.
* @public */ PackedPolicySize?: number | undefined; /** * The issuing authority of the web identity token presented. For OpenID Connect ID
* tokens, this contains the value of the iss field. For OAuth 2.0 access tokens,
* this contains the value of the ProviderId parameter that was passed in the
* AssumeRoleWithWebIdentity request.
The intended audience (also known as client ID) of the web identity token. This is * traditionally the client identifier issued to the application that requested the web * identity token.
* @public */ Audience?: string | undefined; /** *The value of the source identity that is returned in the JSON web token (JWT) from the * identity provider.
*You can require users to set a source identity value when they assume a role. You do
* this by using the sts:SourceIdentity condition key in a role trust policy.
* That way, actions that are taken with the role are associated with that user. After the
* source identity is set, the value cannot be changed. It is present in the request for all
* actions that are taken by the role and persists across chained role
* sessions. You can configure your identity provider to use an attribute associated with your
* users, like user name or email, as the source identity when calling
* AssumeRoleWithWebIdentity. You do this by adding a claim to the JSON web
* token. To learn more about OIDC tokens and claims, see Using Tokens with User Pools in the Amazon Cognito Developer Guide.
* For more information about using source identity, see Monitor and control
* actions taken with assumed roles in the
* IAM User Guide.
The regex used to validate this parameter is a string of characters * consisting of upper- and lower-case alphanumeric characters with no spaces. You can * also include underscores or any of the following characters: =,.@-
* @public */ SourceIdentity?: string | undefined; }