LoginSignup
4
1

More than 3 years have passed since last update.

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

Last updated at Posted at 2020-06-17

前提

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の共存など、細かいメモ

4
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
4
1