Go での AWS IAM の使用: 完全ガイド

WBOY
リリース: 2023-06-17 15:39:11
オリジナル
1674 人が閲覧しました

AWS (アマゾン ウェブ サービス) は、クラウド コンピューティング業界のリーダーとして、便利で強力なクラウド コンピューティング サービスを提供し、企業が独自の IT インフラストラクチャを簡単に構築および管理し、優れた拡張性、柔軟性、低コストを実現できるようにします。 IAM (Identity and Access Management) は AWS の重要なサービスの 1 つであり、ユーザー (人、アプリケーション、サービスなどを含む) の ID とアクセス権を管理し、AWS リソースのセキュリティと機密性を確保する責任があります。この記事では、Go 言語で AWS IAM を使用する方法を紹介し、詳細な実装方法とコード例を示します。

1. AWS で IAM ユーザーとロールを作成する

まず、AWS で IAM ユーザーとロールを作成する必要があります。 IAM ユーザーは AWS リソースの ID であり、ロールはこれらのリソースへのアクセス許可です。これらの ID とアクセス許可は、AWS コンソールまたは AWS CLI を使用して作成および管理できます。 AWS コンソールを使用して IAM ユーザーとロールを作成する手順は次のとおりです。

  1. AWS コンソールにログインし、IAM コンソールに移動します。
  2. 左側のナビゲーション バーで [ユーザー] をクリックし、[ユーザーの追加] をクリックします。ユーザー名とアクセス タイプ (プログラムによるアクセスまたは AWS マネジメント コンソール アクセス) を入力し、[次へ] をクリックします。
  3. 新しいユーザーに権限を割り当てます。ユーザーを既存のユーザー グループ (つまり、同じ権限に関連付けられたユーザーのセット) に直接追加することも、新しいユーザー用のカスタム権限ポリシーを作成することもできます。ここでは、AmazonS3FullAccess へのアクセスを含む、新しいユーザー用の「IAMUserPolicy」というアクセス許可ポリシーを作成します。権限ポリシーを追加したら、「次へ」をクリックします。
  4. すべての設定を確認します。このページでは、作成した IAM ユーザーのアクセス キーとセキュリティ認証情報、およびそのユーザーに対して作成したばかりのアクセス許可を表示できます。すべての設定を確認したら、「完了」をクリックします。
  5. 上記の手順 2 ~ 4 を繰り返して、「IAMRole」という名前の IAM ロールを作成し、AmazonS3FullAccess アクセス許可ポリシーをそのロールに関連付けます。

2. Go 言語で AWS IAM を実装する

IAM ユーザーとロールを作成したら、Go 言語で AWS IAM の実装を開始できます。以下は、AWS SDK for Go (aws-sdk-go) を使用した実装手順です:

  1. aws-sdk-go をインストールします:
go get -u github.com/aws/aws-sdk-go
ログイン後にコピー
  1. Go でcode import aws-sdk-go:
import (
    "github.com/aws/aws-sdk-go/aws"
    "github.com/aws/aws-sdk-go/aws/session"
    "github.com/aws/aws-sdk-go/service/iam"
)
ログイン後にコピー
  1. AWS セッションの設定:
sess := session.Must(session.NewSessionWithOptions(session.Options{
    SharedConfigState: session.SharedConfigEnable,
}))
ログイン後にコピー

これにより、セキュリティ認証情報を含む AWS CLI/SDK の共有設定ファイルが読み取られます。そして地域情報。

  1. IAM サービスのクライアントを作成します:
svc := iam.New(sess)
ログイン後にコピー

これにより、IAM サービスのクライアントが作成されます。

  1. IAM ユーザーの作成:
_, err := svc.CreateUser(&iam.CreateUserInput{
    UserName: aws.String("test-user"),
})
if err != nil {
    panic(err)
}
ログイン後にコピー

ここでは、「test-user」という名前の新しい IAM ユーザーを作成します。

  1. IAM ユーザーにアクセス許可を割り当てる:
_, err = svc.AttachUserPolicy(&iam.AttachUserPolicyInput{
    PolicyArn: aws.String("arn:aws:iam::aws:policy/AmazonS3FullAccess"),
    UserName:  aws.String("test-user"),
})
if err != nil {
    panic(err)
}
ログイン後にコピー

ここでは、IAM ユーザー「test-user」を AmazonS3FullAccess アクセス許可ポリシーに関連付けます。

  1. IAM ロールの作成:
_, err = svc.CreateRole(&iam.CreateRoleInput{
    AssumeRolePolicyDocument: aws.String(`{
    "Version": "2012-10-17",
    "Statement": [
      {
        "Effect": "Allow",
        "Principal": {
          "Service": "ec2.amazonaws.com"
        },
        "Action": "sts:AssumeRole"
      }
    ]
}`),
    RoleName: aws.String("test-role"),
})
if err != nil {
    panic(err)
}
ログイン後にコピー

ここでは、「test-role」という名前の新しい IAM ロールを作成し、Amazon EC2 に関連付けています。

  1. IAM ロールにアクセス許可を割り当てます:
_, err = svc.AttachRolePolicy(&iam.AttachRolePolicyInput{
    PolicyArn: aws.String("arn:aws:iam::aws:policy/AmazonS3FullAccess"),
    RoleName:  aws.String("test-role"),
})
if err != nil {
    panic(err)
}
ログイン後にコピー

ここでは、IAM ロール「test-role」を AmazonS3FullAccess アクセス許可ポリシーに関連付けます。

  1. すべての IAM ユーザーをリストします:
resp, err := svc.ListUsers(&iam.ListUsersInput{})
if err != nil {
    panic(err)
}
for _, user := range resp.Users {
    fmt.Println("IAM user:", *user.UserName)
}
ログイン後にコピー

ここでは、すべての IAM ユーザーをリストします。

  1. すべての IAM ロールをリストします:
resp, err = svc.ListRoles(&iam.ListRolesInput{})
if err != nil {
    panic(err)
}
for _, role := range resp.Roles {
    fmt.Println("IAM role:", *role.RoleName)
}
ログイン後にコピー

ここでは、すべての IAM ロールをリストします。

3. 結論

この記事では、AWS で IAM ユーザーとロールを作成する方法を紹介し、aws-sdk-go を使用して Go 言語で AWS IAM を実装する方法について詳しく説明しました。手順とコード例。 IAM を通じて、信頼性の高い認証とアクセス制御を実装し、AWS リソースのセキュリティと機密性を確保できます。同時に、aws-sdk-go の機能を利用することで、AWS IAM をより簡単に実装し、Go 言語でより優れたアプリケーションを構築できます。

以上がGo での AWS IAM の使用: 完全ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート