ASK CLIを使った認証情報の管理
Alexa Skills Kitコマンドラインインターフェース(ASK CLI)では、既存スキルのクローンを作成したり、スキルをデプロイしたり、Amazon開発者サービスと対話したりする際に開発者を認証できるようにAmazon開発者認証情報を保存します。ASK CLIを使ってバックエンドコードにAWS Lambdaを使用するスキルを管理する場合は、アマゾンウェブサービス(AWS)認証情報への参照も保存します。以下のセクションでは、ASK CLIを使ってAmazon開発者認証情報とAWS認証情報を設定し、管理する方法について説明します。
プロファイルとは
ASK CLIはプロファイル を使用します。これは認証情報のセットを保存する容器(コンテナー)のようなものです。プロファイルを使うと、複数のAmazon開発者認証情報やAWSアカウントの認証情報のセットを設定し、すべてASK CLIで使用することができます。プロファイルにより、複数のAmazon開発者組織が所有するスキルや、複数のAWSアカウントが所有するAWS Lambdaで書かれたバックエンドコードを管理しやすくなります。以下のセクションでは、複数の認証情報セットをプロファイルに設定する方法を説明します。
デフォルトでは、ASK CLIはAmazon開発者認証情報をdefaultというプロファイルに保存します。defaultプロファイルは、Amazon開発者認証情報が1セットのみの場合に使用します。Amazon開発者認証情報のセットを複数使用する場合は、ask configure
コマンドで新しいプロファイルを作成します。このとき、ASK CLIコマンドに-p
または--profile
を使って使用するプロファイルを指定するか、環境変数ASK_DEFAULT_PROFILE
を使います。変数の値に、profile_2など、ASK CLIで使うプロファイル名を設定します。
プロファイルの優先順位
ASK CLIは、以下の順序でプロファイルを検索します。
- ASK CLIコマンドに
-p
または--profile
のオプションがある場合、ASK CLIはこれらのオプションで指定されたプロファイルを使います。 - コマンドに
-p
または--profile
のオプションがない場合、ASK CLIはASK_DEFAULT_PROFILE
環境変数で指定されたプロファイルを使います。 -
コマンドに
-p
または--profile
がなく、ASK_DEFAULT_PROFILE
環境変数もない場合、ASK CLIはASK CLIコンフィギュレーションファイル(cli_config
)にあるdefaultというプロファイルを使います。コンフィギュレーションファイルの詳細については、Amazon開発者認証情報を直接管理するを参照してください。
「ask configure」コマンドを使って認証情報を設定する
ASK CLIでAmazon開発者認証情報とAWS認証情報を設定するには、ask configure
コマンドを使います。
ask configure
を初めて実行する際には、ASK CLIがウェブブラウザを開きます。ここからAmazon開発者アカウントにサインインできます。Amazon開発者アカウントにサインインしたら、ウェブページでASK CLIに必要なアクセスを許可します。ASK CLIはコンフィギュレーションファイルを作成し、このファイルのdefaultというプロファイルにAmazon開発者認証情報を保存します。コンフィギュレーションファイルの詳細については、Amazon開発者認証情報を直接管理するを参照してください。
ASK CLIにコンフィギュレーションファイルがある場合、ask configure
を実行すると、既存のASK CLIプロファイルを上書きするか、新規に作成するかを選択するようプロンプトが表示されます。また、ASK CLIは既存のAWSプロファイルも検索し、見つかった場合は、既存のAWSプロファイルを使うか、新規に作成するかを選択するようプロンプトを表示します。ASK CLIを使ったAWS認証情報の管理の詳細については、AWS認証情報を直接管理するを参照してください。
ウェブブラウザのない環境でask configure
を使う場合、--no-browser
オプションを使います(ask configure --no-browser
)。
ask configure
コマンドの完全な構文と利用可能なオプションについては、ASK CLIコマンドリファレンスでconfigureコマンドを参照してください。
Amazon開発者認証情報を直接管理する
ask configure
コマンドを使うと、ASK CLIで使用するAmazon開発者認証情報を管理できます。ask configure
では、以下の操作ができます。
ask configure
を使用して、新しいプロファイルを作成するか、既存のプロファイルを上書きします。ask configure -p <プロファイル名>
を使用し、指定した名前のプロファイルを作成するか、上書きします。
ASK CLIで使うAmazon開発者認証情報を管理するには、ASK CLIコンフィギュレーションファイルを直接編集するか、ASK CLI環境変数を使用するという方法もあります。これらの方法については、以下のセクションで説明します。
ASK CLIコンフィギュレーションファイル
ASK CLIコンフィギュレーションファイルは、ホームディレクトリ(.ask
フォルダ)にcli_config
ファイルとして保存されます。以下は、ASK CLIコンフィギュレーションファイルの例です。
{
"profiles": {
"default": {
"aws_profile": "ask_cli_default",
"token": {
"access_token": "Atza| ... ",
"refresh_token": "Atzr| ... ",
"token_type": "bearer",
"expires_in": 3600,
"expires_at": "2019-01-21T01:13:37.228Z"
},
"vendor_id": "ABCD1234 ..."
},
"profile2": {
"aws_profile": "ask_cli_2",
"token": {
"access_token": "Atza| ... ",
"refresh_token": "Atzr| ... ",
"token_type": "bearer",
"expires_in": 3600,
"expires_at": "2019-01-21T02:02:07.833Z"
},
"vendor_id": "ABCD1234 ..."
}
}
}
ASK CLIプロファイルを変更するには、このファイルを直接編集します。たとえば、プロファイル名の変更、関連するAWSプロファイルの変更、Amazon開発者ベンダーIDの変更などができます。
token
オブジェクトの値は編集しないでください。これらの値は、ask configure
の実行時にASK CLIによって更新されます。AWSプロファイル
aws_profile
の値は、AWSコンフィギュレーションファイルのプロファイルを表します。AWSプロファイルの詳細については、AWS認証情報を直接管理するを参照してください。
ベンダーID
vendor_id
の値は、ASK CLIプロファイルと関連付けられたAmazon開発者ベンダーIDを表します。すべてのAmazon開発者アカウントには、1つのカスタマーIDと1つ以上のベンダーIDが関連付けられています。これらのIDを確認するには、https://developer.amazon.com/mycid.htmlにアクセスし、Amazon開発者アカウントでサインインします。ask configure
を実行し、複数のベンダーIDを持つAmazon開発者アカウントでサインインすると、ASK CLIからベンダーIDを1つ選ぶよう求められます。
プロファイルを環境変数に関連付ける
Amazon開発者認証情報は、ASK CLIコンフィギュレーションファイルではなく、環境変数に保存することもできます。この場合、ASK CLIコンフィギュレーションは一切必要ありません。詳細については、ASK CLI環境変数を参照してください。
ASK CLI環境変数
ASK CLI環境変数は、ASK CLIコンフィギュレーションファイルと組み合わせて使うことも、追加して使うこともできます。以下は、ASK CLI環境変数の一覧です。
ASK_DEFAULT_PROFILE
- この環境変数は、ASK CLIコンフィギュレーションファイルと組み合わせて使います。コンフィギュレーションファイルにあるプロファイルのいずれかを値として設定すると、ASK CLIはそのプロファイルの認証情報を使用します。
ASK_ACCESS_TOKEN
- この環境変数は、Amazon開発者アクセストークンを保存するのに使います。この環境変数が存在する場合、ASK CLIはコンフィギュレーションファイルの認証情報ではなく、この変数の値を使用します。
ASK_REFRESH_TOKEN
- この環境変数は、Amazon開発者更新トークンを保存するのに使います。この環境変数が存在する場合、ASK CLIはコンフィギュレーションファイルの認証情報ではなく、この変数の値を使用します。この環境変数と
ASK_ACCESS_TOKEN
が両方存在する場合、ASK CLIはこの環境変数の値を使用します。 ASK_VENDOR_ID
- この環境変数は、Amazon開発者ベンダーIDを保存するのに使います。この環境変数が存在する場合、ASK CLIはコンフィギュレーションファイルにあるベンダーIDではなく、この環境変数の値を使用します。
ASK_CLI_PROXY
- ASK CLIで行われたリクエストのHTTPプロキシを指定するには、この環境変数を使用します。
AWS認証情報を直接管理する
ASK CLIを使ってバックエンドコードにAWS Lambdaを使用するスキルの作成と管理を行うには、AWS認証情報が必要です。AWS開発者の場合、AWS認証情報を既に持っている可能性があります。AWS認証情報を持っていないか、持っているかどうか不明な場合は、AWS認証情報を作成するを参照してください。
ask configure
コマンドを使うと、ASK CLIで使用するAWS認証情報を管理できます。ASK CLIで使うAWS認証情報を管理するには、AWS認証情報ファイルを直接編集するか、AWS環境変数を使用するという方法もあります。これらの方法については、以下のセクションで説明します。
AWS認証情報ファイル
AWS開発者の場合、AWS認証情報ファイルにAWS認証情報が既に保存されている可能性があります。ASK CLIで使うAWS認証情報の作成方法については、AWS認証情報を作成するを参照してください。
AWS認証情報ファイルにAWS認証情報が存在する場合、ASK CLIはその認証情報を使います。ask configure
コマンドを使ってAWS認証情報を設定すると、ASK CLIはこの認証情報をAWS認証情報ファイルに追加します。ファイルがない場合は作成します。デフォルトでは、ASK CLIは、AWS認証情報ファイルにあるask_cli_defaultというプロファイルにAWS認証情報を保存します。
AWS認証情報ファイルの詳細については、AWSドキュメントで設定ファイルと認証情報ファイル、名前付きプロファイルを参照してください。
AWS環境変数
AWS認証情報は、AWS認証情報ファイルではなく、環境変数に保存することもできます。AWS環境変数が存在する場合、ASK CLIはAWS認証情報ファイルの値ではなく、この環境変数の値を使います。ASK CLIは、以下のAWS環境変数を検索します。
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS環境変数の詳細については、AWSドキュメントで環境変数を参照してください。
AWS認証情報を作成する
ASK CLIを使ってバックエンドコードにAWS Lambdaを使用するスキルの作成と管理を行うには、AWS認証情報が必要です。aws configure
コマンドは、このプロセスをガイドします。AWS認証情報をまだ持っていないか、手動での作成を希望する場合は、次の手順で作成します。
AWS認証情報を作成するには
- AWSマネジメントコンソールにサインインします。
- IAMコンソールを開きます。AWS IAM(Identity & Access Management)は、AWS認証情報の管理に使用するサービスです。
- ポリシーをクリックして、ポリシーの作成をクリックします。
- ポリシーの作成ページで、以下の手順を行います。
- JSONタブをクリックして、policyフィールドのコンテンツを削除します。
- 以下のポリシーをコピーして、policyフィールドに貼り付けます。
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "iam:CreateRole", "iam:GetRole", "iam:AttachRolePolicy", "iam:PassRole", "lambda:AddPermission", "lambda:CreateFunction", "lambda:GetFunction", "lambda:UpdateFunctionCode", "lambda:ListFunctions", "logs:FilterLogEvents", "logs:getLogEvents", "logs:describeLogStreams" ], "Resource": "*" } }
- ポリシーの確認をクリックします。
- ポリシーの確認ページで、以下の手順を行います。
- 名前には、ポリシーの名前を入力します。たとえば、ASK-CLIなどの名前です。
- (任意)説明には、説明を入力します。たとえば、「ASK CLIで必要な権限を許可する」と入力します。
- ポリシーの作成をクリックします。
- ユーザーをクリックして、ユーザーを追加をクリックします。
- ユーザー詳細の設定ページで、以下の手順を行います。
- ユーザー名フィールドに、ユーザーの名前を入力します。たとえば、ASK-CLIなどの名前です。
- アクセスの種類で、プログラムによるアクセスチェックボックスをオンにします。
- 次のステップ: アクセス権限をクリックします。
- アクセス許可の設定ページで、以下の手順を行います。
- ユーザーをグループに追加が選択されていることを確認します。
- グループの作成をクリックします。グループの作成ウィンドウで、以下の手順を行います。
- グループ名フィールドに、グループの名前を入力します。たとえば、ASK-CLIなどの名前です。
- ポリシーのフィルタをクリックして、ユーザーによる管理チェックボックスをオンにします。
- 前述の手順(手順5)で作成したポリシーの名前の横にあるチェックボックスをオンにします。記載のとおりに手順を実行した場合、ポリシーの名前はASK-CLIです。
- グループの作成をクリックします。
- 次のステップ: タグをクリックします。
- 次のステップ: 確認をクリックします。
- ユーザーの作成をクリックします。
-
重要: このステップはスキップしないでください。ユーザーのシークレットアクセスキーを保存できるのはここだけです。ここで保存しなければ、このアクセスキーを削除して新規作成しなければなりません。
成功ページで、.csvのダウンロードをクリックして、ユーザーのアクセスキーをダウンロードします。ファイルを安全な場所に保存します。
最後のステップでダウンロードしたファイルの名前は、credentials.csvです。このファイルには、AWS IAMユーザーのアクセスキーIDとシークレットアクセスキーが含まれています。ASK CLIのask configure
コマンドを使ってAWS認証情報を設定する際に、これらの値を使用します。