This package has been deprecated

Author message:

The package @aws-sdk/client-sts-browser has been renamed to @aws-sdk/client-sts. Please install the renamed package.

@aws-sdk/client-sts-browser
TypeScript icon, indicating that this package has built-in type declarations

0.1.0-preview.2 • Public • Published

@aws-sdk/client-sts-browser

NPM version NPM downloads

Description

AWS Security Token Service

The AWS Security Token Service (STS) is a web service that enables you to request temporary, limited-privilege credentials for AWS Identity and Access Management (IAM) users or for users that you authenticate (federated users). This guide provides descriptions of the STS API. For more detailed information about using this service, go to Temporary Security Credentials.

For information about setting up signatures and authorization through the API, go to Signing AWS API Requests in the AWS General Reference. For general information about the Query API, go to Making Query Requests in Using IAM. For information about using security tokens with other AWS products, go to AWS Services That Work with IAM in the IAM User Guide.

If you're new to AWS and need additional technical information about a specific AWS product, you can find the product's technical documentation at http://aws.amazon.com/documentation/.

Endpoints

By default, AWS Security Token Service (STS) is available as a global service, and all AWS STS requests go to a single endpoint at https://sts.amazonaws.com. Global requests map to the US East (N. Virginia) region. AWS recommends using Regional AWS STS endpoints instead of the global endpoint to reduce latency, build in redundancy, and increase session token validity. For more information, see Managing AWS STS in an AWS Region in the IAM User Guide.

Most AWS Regions are enabled for operations in all AWS services by default. Those Regions are automatically activated for use with AWS STS. Some Regions, such as Asia Pacific (Hong Kong), must be manually enabled. To learn more about enabling and disabling AWS Regions, see Managing AWS Regions in the AWS General Reference. When you enable these AWS Regions, they are automatically activated for use with AWS STS. You cannot activate the STS endpoint for a Region that is disabled. Tokens that are valid in all AWS Regions are longer than tokens that are valid in Regions that are enabled by default. Changing this setting might affect existing systems where you temporarily store tokens. For more information, see Managing Global Endpoint Session Tokens in the IAM User Guide.

After you activate a Region for use with AWS STS, you can direct AWS STS API calls to that Region. AWS STS recommends that you provide both the Region and endpoint when you make calls to a Regional endpoint. You can provide the Region alone for manually enabled Regions, such as Asia Pacific (Hong Kong). In this case, the calls are directed to the STS Regional endpoint. However, if you provide the Region alone for Regions enabled by default, the calls are directed to the global endpoint of https://sts.amazonaws.com.

To view the list of AWS STS endpoints and whether they are active by default, see Writing Code to Use AWS STS Regions in the IAM User Guide.

Recording API requests

STS supports AWS CloudTrail, which is a service that records AWS calls for your AWS account and delivers log files to an Amazon S3 bucket. By using information collected by CloudTrail, you can determine what requests were successfully made to STS, who made the request, when it was made, and so on.

If you activate AWS STS endpoints in Regions other than the default global endpoint, then you must also turn on CloudTrail logging in those Regions. This is necessary to record any AWS STS API calls that are made in those Regions. For more information, see Turning On CloudTrail in Additional Regions in the AWS CloudTrail User Guide.

AWS Security Token Service (STS) is a global service with a single endpoint at https://sts.amazonaws.com. Calls to this endpoint are logged as calls to a global service. However, because this endpoint is physically located in the US East (N. Virginia) Region, your logs list us-east-1 as the event Region. CloudTrail does not write these logs to the US East (Ohio) Region unless you choose to include global service logs in that Region. CloudTrail writes calls to all Regional endpoints to their respective Regions. For example, calls to sts.us-east-2.amazonaws.com are published to the US East (Ohio) Region and calls to sts.eu-central-1.amazonaws.com are published to the EU (Frankfurt) Region.

To learn more about CloudTrail, including how to turn it on and find your log files, see the AWS CloudTrail User Guide.

Installing

To install the this package using NPM, simply type the following into a terminal window:

npm install @aws-sdk/client-sts-browser

Getting Started

Import

The AWS SDK is modulized by clients and commands in CommonJS modules. To send a request, you only need to import the client(STSClient) and the commands you need, for example AssumeRoleCommand:

//JavaScript
const { STSClient } = require("@aws-sdk/client-sts-browser/STSClient");
const {
  AssumeRoleCommand
} = require("@aws-sdk/client-sts-browser/commands/AssumeRoleCommand");
//TypeScript
import { STSClient } from "@aws-sdk/client-sts-browser/STSClient";
import { AssumeRoleCommand } from "@aws-sdk/client-sts-browser/commands/AssumeRoleCommand";

Usage

To send a request, you:

  • Initiate client with configuration (e.g. credentials, region). For more information you can refer to the API reference.
  • Initiate command with input parameters.
  • Call send operation on client with command object as input.
  • If you are using a custom http handler, you may call destroy() to close open connections.
const sTS = new STSClient({region: 'region'});
//clients can be shared by different commands
const params = {
  RoleArn: /**a string value*/,
  RoleSessionName: /**a string value*/,
};
const assumeRoleCommand = new AssumeRoleCommand(params);
sTS.send(assumeRoleCommand).then(data => {
    // do something
}).catch(error => {
    // error handling
})

In addition to using promises, there are 2 other ways to send a request:

// async/await
try {
  const data = await sTS.send(assumeRoleCommand);
  // do something
} catch (error) {
  // error handling
}
// callback
sTS.send(assumeRoleCommand, (err, data) => {
  //do something
});

The SDK can also send requests using the simplified callback style from version 2 of the SDK.

import * as AWS from "@aws-sdk/@aws-sdk/client-sts-browser/STS";
const sTS = new AWS.STS({ region: "region" });
sTS.assumeRole(params, (err, data) => {
  //do something
});

Troubleshooting

When the service returns an exception, the error will include the exception information, as well as response metadata (e.g. request id).

try {
  const data = await sTS.send(assumeRoleCommand);
  // do something
} catch (error) {
  const metadata = error.$metadata;
  console.log(
    `requestId: ${metadata.requestId}
cfId: ${metadata.cfId}
extendedRequestId: ${metadata.extendedRequestId}`
  );
  /*
The keys within exceptions are also parsed. You can access them by specifying exception names:
    if(error.name === 'SomeServiceException') {
        const value = error.specialKeyInException;
    }
*/
}

Getting Help

Please use these community resources for getting help. We use the GitHub issues for tracking bugs and feature requests and have limited bandwidth to address them.

  • Ask a question on StackOverflow and tag it with aws-sdk-js
  • Come join the AWS JavaScript community on gitter
  • If it turns out that you may have found a bug, please open an issue

Contributing

This client code is generated automatically. Any modifications will be overwritten the next time the `@aws-sdk/@aws-sdk/client-sts-browser' package is updated. To contribute to SDK you can checkout our code generator package.

License

This SDK is distributed under the Apache License, Version 2.0, see LICENSE for more information.

Readme

Keywords

none

Package Sidebar

Install

npm i @aws-sdk/client-sts-browser

Weekly Downloads

0

Version

0.1.0-preview.2

License

Apache-2.0

Unpacked Size

245 kB

Total Files

273

Last publish

Collaborators

  • mattsb42-aws
  • kuhe
  • amzn-oss
  • aws-sdk-bot
  • trivikr-aws