Autogenerated Typescript types for AWS IAM Policy and enums for policy actions for almost 400 AWS services.
This package provides typing and enums for AWS IAM Policies, as describes in
npm i aws-iam-policy-types
import { IAM } from '@aws-sdk/client-iam';
import { AwsIAMPolicy, AwsStsActions } from 'aws-iam-policy-types';
// Configure the AWS SDK
const iam = new IAM({
region: 'us-west-2',
credentials: {
accessKeyId: 'YOUR_ACCESS_KEY_ID',
secretAccessKey: 'YOUR_SECRET_ACCESS_KEY',
},
});
// Use `AwsIAMPolicy` to have type-safe policy
const assumeRolePolicyDocument: AwsIAMPolicy = {
Version: policyVersion,
Statement: [
{
Effect: 'Allow',
Principal: {
AWS: `arn:aws:iam::${awsAccountId}:root`,
},
// Use enums to have type-safe actions
Action: AwsStsActions.AssumeRole,
},
],
};
const { Role } = await iam.createRole({
RoleName: 'MyRole',
AssumeRolePolicyDocument: JSON.stringify(assumeRolePolicyDocument),
});
There is also ExclusiveAwsIAMPolicy
type, which is the same as AwsIAMPolicy
, except the type is inferred to allow only one of Action
/NotAction
, and only one of Resource
/NotResource
.
See here the full list of all available types
Found a bug or hav a feature request? Please open a new issue.
When contributing with your code, please follow the standard best practices:
- Make a fork with your changes, then make a Merge Request to merge it
- Be polite