外部プロセスを使用して認証情報を作成する - AWS Command Line Interface

このドキュメントは、 のバージョン 1 AWS CLI のみを対象としています。のバージョン 2 に関連するドキュメントについては AWS CLI、「 バージョン 2 ユーザーガイド」を参照してください。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

外部プロセスを使用して認証情報を作成する

警告

このトピックでは、外部プロセスからの認証情報の調達について説明します。認証情報を生成するコマンドが非承認のプロセスやユーザーからアクセスできることは、セキュリティ上のリスクにつながります。認証情報が危険にさらされるリスクを軽減 AWS するために、 AWS CLI および が提供する、サポートされている安全な代替手段を使用することをお勧めします。漏洩を防ぐために、config ファイルおよびサポートされたファイルとツールの安全を確保します。

カスタム認証情報ツールが にシークレット情報を書き込まないようにしてください。 StdErr SDKsと AWS CLI はそのような情報をキャプチャしてログに記録し、権限のないユーザーに公開する可能性があります。

で直接サポートされていない認証情報を生成または検索する方法がある場合は AWS CLI、 config ファイルcredential_processで 設定を設定することで、それを使用する AWS CLI ように を設定できます。

例えば、config ファイルに次のようなエントリを含めることができます。

[profile developer] credential_process = /opt/bin/awscreds-custom --username helen
構文

任意のオペレーティングシステムと互換性のある方法でこの文字列を作成するには、以下のルールに従います。

  • パスまたはファイル名にスペースが含まれている場合は、完全なパスとファイル名を二重引用符 (" ") で囲みます。パスとファイル名は A 〜 Z、a 〜 z、0 〜 9、- _ . の文字、スペースのみで構成できます。

  • パラメータ名またはパラメータ値にスペースが含まれている場合は、その要素を二重引用符 (" ") で囲みます。囲むのは、名前または値のみであり、そのペアではありません。

  • 文字列に環境変数を含めないでください。例えば、$HOME または %USERPROFILE% を含めることはできません。

  • ホームフォルダを ~ として指定しないでください。完全パスを指定する必要があります。

Windows の例

credential_process = "C:\Path\To\credentials.cmd" parameterWithoutSpaces "parameter with spaces"

Linux または macOS の例

credential_process = "/Users/Dave/path/to/credentials.sh" parameterWithoutSpaces "parameter with spaces"

認証情報プログラムからの想定される出力

は、プロファイルで指定されたとおりに コマンド AWS CLI を実行し、 からデータを読み取りますSTDOUT。指定するコマンドは、次の構文STDOUTに一致するJSON出力を生成する必要があります。

{ "Version": 1, "AccessKeyId": "an AWS access key", "SecretAccessKey": "your AWS secret access key", "SessionToken": "the AWS session token for temporary credentials", "Expiration": "ISO8601 timestamp when the credentials expire" }
注記

本文書の執筆時点では、Version キーは 1 に設定する必要があります。構造が進化するため、時間の経過と共に増えていく可能性があります。

Expiration キーは ISO8601 形式のタイムスタンプです。Expiration キーがツールの出力に存在しない場合、 は認証情報が更新しない長期的な認証情報であるCLIと仮定します。それ以外の認証情報は一時的な認証情報と見なされ、有効期限が切れる前に credential_process を再実行して自動的に更新されます。

注記

AWS CLI は、ロールの認証情報を引き受ける方法で外部プロセス認証情報をキャッシュしません。キャッシュが必要な場合は、外部プロセス内で実装する必要があります。

外部プロセスはゼロ以外のリターンコードを返して、認証情報の取得時にエラーが発生したことを示すことができます。