3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

AWS Security Token Service (AWS STS) を使用して,一時的な認証情報を発行

Posted at

課題

日常の仕事でこのようなシーンがございますでしょうか。
Aさんは開発者です。Aさんはローカルでコードをテストする際に、AWS S3にアクセスしないといけないです。
AWSのaws_access_key_idとaws_secret_access_keyが必要です。
以下の方法でどっちが一番良い方法でしょうか。

  1. Aさんにaws_access_key_idとaws_secret_access_keyを共有して、他の開発者に共有しないように要求する。
  2. Aさんにaws_access_key_idとaws_secret_access_keyを共有して、90日単位でローテーションします。
  3. 開発者にAWS Security Token Serviceで作成した一時的な認証情報を使用させる。

AWSのお勧めとしては3番です。

概要

開発者にAWS Security Token Serviceで作成した一時的な認証情報を使用させる方法を説明させて戴きます。

截屏2022-05-31 14.49.16.png

手順

1.開発者のIAM ユーザーを作成

截屏2022-05-31 14.55.54.png

ユーザーのアクセスキーを確認

截屏2022-05-31 15.02.42.png

2.アクセスキーをローカルに保存

截屏2022-05-31 15.00.57.png

3.S3にアクセスしてみます

新作したユーザーに権限を付与しなかったので、以下のエラーが表示されます。

youyonghua@youyonghuadeMacBook-Pro .aws % aws s3 ls --profile A_developer 

An error occurred (AccessDenied) when calling the ListBuckets operation: Access Denied
youyonghua@youyonghuadeMacBook-Pro .aws % 

4.IAMに全てIAMユーザーが使用できるS3 read-onlyロールを作成

截屏2022-05-31 16.45.55.png
截屏2022-05-31 16.48.28.png

5.IAM ユーザーにSTSポリシーを付与

截屏2022-05-31 16.53.15.png

6.インラインポリシーの追加

截屏2022-05-31 16.55.12.png

截屏2022-05-31 16.56.51.png

7.一時的な認証情報を発行

以上のコマンドを参照して、一時的な認証情報を発行します。

youyonghua@youyonghuadeMacBook-Pro .aws % aws sts assume-role --role-arn arn:aws:iam::xxxxxxx:role/S3-ReadOnly-AssumeRole --role-session-name s3-access-sts --profile A_developer
{
    "Credentials": {
        "AccessKeyId": "ASIA2DGDM6AKUN3X66VS",
        "SecretAccessKey": "CK1vU2n5OgauBBV8jF3LelFk/UMvyehMtiDUUQnL",
        "SessionToken": "FwoGZXIvYXdzEEIaDIzNWs/hi/3mC3VzeSKxAWENV/gaAB/uIi/BZ7/9qOB42rd5br/Awb2CqsKrvCy3Sf7Mdwr2T+AQdbNfDQxfBwZ6IfWFNHohStTb4WVU4/QV/5Fz43IEOQ1QK9x3tsDKcpBepCFzbYzhfOERMzzJuXhdTJmTVIwhrAZf/smoe+sJguvT+nVDG5oAwnfI8r18VAZZGwb1kO+JuyiUVf2bqGKIm2vtypcD+AKTBfVxdgaWACQ48g8TXe25LaozljdjTSj2l9eUBjItb4SnO+/6Mq0UH3kkoXzx2K900FL1spoG/nGFRWRTPPoiJAfgRvgwUtHOvMOq",
        "Expiration": "2022-05-31T09:04:06+00:00"
    },
    "AssumedRoleUser": {
        "AssumedRoleId": "AROA2DGDM6AK3P2V5WOQU:s3-access-sts",
        "Arn": "arn:aws:sts::694047010837:assumed-role/S3-ReadOnly-AssumeRole/s3-access-sts"
    }
}

8.一時的な認証情報をローカルに保存

上に作成した一時的な認証情報をcredentialsに保存する

[A_developer_sts]
aws_access_key_id = ASIA2DGDM6AKUN3X66VS
aws_secret_access_key = CK1vU2n5OgauBBV8jF3LelFk/UMvyehMtiDUUQnL
aws_session_token = FwoGZXIvYXdzEEIaDIzNWs/hi/3mC3VzeSKxAWENV/gaAB/uIi/BZ7/9qOB42rd5br/Awb2CqsKrvCy3Sf7Mdwr2T+AQdbNfDQxfBwZ6IfWFNHohStTb4WVU4/QV/5Fz43IEOQ1QK9x3tsDKcpBepCFzbYzhfOERMzzJuXhdTJmTVIwhrAZf/smoe+sJguvT+nVDG5oAwnfI8r18VAZZGwb1kO+JuyiUVf2bqGKIm2vtypcD+AKTBfVxdgaWACQ48g8
TXe25LaozljdjTSj2l9eUBjItb4SnO+/6Mq0UH3kkoXzx2K900FL1spoG/nGFRWRTPPoiJAfgRvgwUtHOvMOq

9.動作確認

一時的な認証情報でs3のパケット一覧を取得できました。

youyonghua@youyonghuadeMacBook-Pro .aws % aws s3 ls --profile A_developer_sts
2021-11-14 15:20:46 codepipeline-ap-northeast-1-123238800263
youyonghua@youyonghuadeMacBook-Pro .aws % 
3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?