Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅
中国的 Amazon Web Services 服务入门
(PDF)。
使用 Amazon 开发工具包的 IAM 代码示例
以下代码示例显示如何将 IAM 与 Amazon 软件开发工具包(SDK)一起使用。
操作是展示如何调用具体服务函数的代码节选。
场景是展示如何通过在同一服务中调用多个函数来完成特定任务的代码示例。
有关 Amazon 软件开发工具包开发人员指南和代码示例的完整列表,请参阅 将 IAM 与 Amazon 开发工具包配合使用。本主题还包括有关入门的信息以及有关先前的软件开发工具包版本的详细信息。
开始使用
以下代码示例显示如何开始使用 IAM。
- .NET
-
- Amazon SDK for .NET
-
namespace IAMActions;
public class HelloIAM
{
static async Task Main(string[] args)
{
// Getting started with AWS Identity and Access Management (IAM). List
// the policies for the account.
var iamClient = new AmazonIdentityManagementServiceClient();
var listPoliciesPaginator = iamClient.Paginators.ListPolicies(new ListPoliciesRequest());
var policies = new List<ManagedPolicy>();
await foreach (var response in listPoliciesPaginator.Responses)
{
policies.AddRange(response.Policies);
}
Console.WriteLine("Here are the policies defined for your account:\n");
policies.ForEach(policy =>
{
Console.WriteLine($"Created: {policy.CreateDate}\t{policy.PolicyName}\t{policy.Description}");
});
}
}
- Go
-
- SDK for Go V2
-
package main
import (
"context"
"fmt"
"github.com/aws/aws-sdk-go-v2/aws"
"github.com/aws/aws-sdk-go-v2/config"
"github.com/aws/aws-sdk-go-v2/service/iam"
)
// main uses the AWS SDK for Go (v2) to create an AWS Identity and Access Management (IAM)
// client and list up to 10 policies in your account.
// This example uses the default settings specified in your shared credentials
// and config files.
func main() {
sdkConfig, err := config.LoadDefaultConfig(context.TODO())
if err != nil {
fmt.Println("Couldn't load default configuration. Have you set up your AWS account?")
fmt.Println(err)
return
}
iamClient := iam.NewFromConfig(sdkConfig)
const maxPols = 10
fmt.Printf("Let's list up to %v policies for your account.\n", maxPols)
result, err := iamClient.ListPolicies(context.TODO(), &iam.ListPoliciesInput{
MaxItems: aws.Int32(maxPols),
})
if err != nil {
fmt.Printf("Couldn't list policies for your account. Here's why: %v\n", err)
return
}
if len(result.Policies) == 0 {
fmt.Println("You don't have any policies!")
} else {
for _, policy := range result.Policies {
fmt.Printf("\t%v\n", *policy.PolicyName)
}
}
}
- JavaScript
-
- SDK for JavaScript (v3)
-
import { IAMClient, paginateListPolicies } from "@aws-sdk/client-iam";
const client = new IAMClient({});
export const listLocalPolicies = async () => {
/**
* In v3, the clients expose paginateOperationName APIs that are written using async generators so that you can use async iterators in a for await..of loop.
* https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/index.html#paginators
*/
const paginator = paginateListPolicies(
{ client, pageSize: 10 },
// List only customer managed policies.
{ Scope: "Local" }
);
console.log("IAM policies defined in your account:");
let policyCount = 0;
for await (const page of paginator) {
if (page.Policies) {
page.Policies.forEach((p) => {
console.log(`${p.PolicyName}`);
policyCount++;
});
}
}
console.log(`Found ${policyCount} policies.`);
};