Help us understand the problem. What is going on with this article?

WindowsローカルのAWS SDKでJavaプログラムを動かすまで

前提

AWS SDK for Java 2.0 開発者ガイド
そして今回使おうとしているもの。

pom.xml
    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <aws.java.sdk.version>2.11.12</aws.java.sdk.version>
    </properties>
<!-- 中略 -->
    <dependencies>
        <dependency>
                <groupId>software.amazon.awssdk</groupId>
                <artifactId>bom</artifactId>
                <version>${aws.java.sdk.version}</version>
                <type>pom</type>
                <scope>import</scope>
        </dependency>
        <dependency>
            <groupId>software.amazon.awssdk</groupId>
            <artifactId>ecs</artifactId>
            <version>${aws.java.sdk.version}</version>
        </dependency>
        <dependency>
            <groupId>software.amazon.awssdk</groupId>
            <artifactId>ssm</artifactId>
            <version>${aws.java.sdk.version}</version>
        </dependency>
    </dependencies>

インストール

AWS CLI をインストールする。
Installing the AWS CLI version 2 on Windows

設定ファイルと認証情報ファイルの設定
C:\Users(username).aws 以下にファイルがあることを確認。

~/.aws/credentials
[default]
aws_access_key_id=(自身のaccess_key_id)
aws_secret_access_key=(自身のsecret_access_key)

~/.aws/config
[default]
region=ap-northeast-1
output=json

認証準備

MFAデバイスの割り当て でMFAの設定を行う。
MFAを設定後は、logout -> 再login をして初めてコンソール上で様々のサービスの確認・操作ができる。コンソール上でEC2などの情報が見られるか、権限を確認する。

MFA認証を用い、一時認証ユーザーを生成

MFA トークンを使用して、AWS CLI 経由で AWS リソースへのアクセスを認証する方法を教えてください。

Checking MFA Status

The ARN in AWS for an SMS device, such as arn:aws:iam::123456789012:sms-mfa/username
The ARN in AWS for a virtual device, such as arn:aws:iam::123456789012:mfa/username

これはつまり以下のようなこと。

C:\Users\works>aws sts get-session-token --serial-number arn:aws:iam::123456123456:mfa/yourid@yourmail.co.jp --token-code (MFAの数字6ケタ) 

{
    "Credentials": {
        "AccessKeyId": "ASIA************",
        "SecretAccessKey": "p8j****************************",
        "SessionToken": "**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************",
        "Expiration": "2020-06-17T19:08:08+00:00"
    }
}

こうしてCredentialsを獲得できる。

デバッグ

AWS CLIの設定切替方法と、AWS_DEFAULT_PROFILEとAWS_PROFILEの違いについてが分かりやすかった。
aws configure --profile プロファイルの名前 とある通り、テスト用プロファイル eclipse を作成してみる。

C:\Users\works>aws configure --profile eclipse
AWS Access Key ID [None]: (CredentialのAccess Key ID)
AWS Secret Access Key [None]: (CredentialのSecret Access Key)
Default region name [None]: ap-northeast-1
Default output format [None]: json

これで
~/.aws/credentials
~/.aws/config
が更新されていることを確認する。

今回はこの状態で、Eclipse の実行時環境変数に
AWS_PROFILE=eclipse をセットする。

無事ローカルでJavaプログラムが動いたー。
関連: AWS SDK 1, 2の共存など、細かいメモ

e99h2121
2003年新卒入社した人事給与システムのリーディングカンパニーでへたこきながら開発をしています。2016aug生まれ娘、2018oct生まれ息子に精神を鍛えられている日々
http://e99h2121.github.io/
works-hi
「はたらく」を楽しく!に向けて大手企業の人事業務から変えていく HR業界のリーディングカンパニー
https://www.works-hi.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away