

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

# AWS アクセスキーを使用して AWS SDKsとツールを認証する
<a name="access-users"></a>

 AWS アクセスキーの使用は、 AWS SDKsとツールを使用する場合の認証のオプションです。

## 短期の認証情報を使用します
<a name="credentials-temporary"></a>

 セッション期間の長いオプションを使用するには、[IAM Identity Center を使用して AWS SDK とツールを認証する](access-sso.md) を使用するように SDK またはツールを設定することをお勧めします。

ただし、SDK またはツールの一時認証情報を直接設定する方法については、「[短期認証情報を使用して AWS SDKsとツールを認証する短期の認証情報](access-temp-idc.md)」を参照してください。

## 長期認証情報の使用
<a name="credentials-long-term"></a>

**警告**  
セキュリティリスクを避けるため、専用ソフトウェアを開発するときや実際のデータを扱うときは、IAM ユーザーを認証に使用しないでください。代わりに、[AWS IAM アイデンティティセンター](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html) などの ID プロバイダーとのフェデレーションを使用してください。

### 間のアクセスを管理する AWS アカウント
<a name="manage-access-accounts"></a>

セキュリティのベストプラクティスとして、IAM Identity Center AWS Organizations で を使用して、すべての へのアクセスを管理することをお勧めします AWS アカウント。詳細については、「*IAM ユーザーガイド*」の「[IAM でのセキュリティベストプラクティス](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)」を参照してください。

IAM アイデンティティセンターでユーザーを作成するか、Microsoft Active Directory を使用するか、SAML 2.0 ID プロバイダー (IdP) を使用するか、IdP を個別にフェデレーションできます AWS アカウント。これらのアプローチのいずれかを使用して、ユーザーにシングルサインオンのエクスペリエンスを提供できます。多要素認証 (MFA) を適用し、一時的な認証情報を使用して AWS アカウント アクセスすることもできます。これは IAM ユーザーとは異なります。IAM ユーザーは、共有できる長期的な認証情報であり、 AWS リソースに対するセキュリティリスクが高まる可能性があります。

### サンドボックス環境専用の IAM ユーザーを作成する
<a name="create-iam-user-sandbox"></a>

を初めて使用する場合は AWS、テスト IAM ユーザーを作成し、それを使用してチュートリアルを実行し、 が提供する AWS ものを調べることができます。学習中はこの種の資格情報を使用しても問題ありませんが、サンドボックス環境以外では使用しないことをお勧めします。

以下のユースケースでは、 で IAM ユーザーの使用を開始するのが理にかなっている場合があります AWS。
+  AWS SDK またはツールの使用を開始し、 AWS のサービス サンドボックス環境で探索する。
+ 学習の一環として、人間によるサインインプロセスをサポートしない、スケジュールされたスクリプト、ジョブ、その他の自動プロセスを実行する。

これらのユースケース以外で IAM ユーザーを使用している場合は、IAM Identity Center に移行するか、ID プロバイダーを AWS アカウント できるだけ早く にフェデレーションします。詳細については、「[AWSでの ID フェデレーション](https://aws.amazon.com/identity/federation/)」を参照してください。

### IAM ユーザーのアクセスキーを保護する
<a name="secure-iam-access-keys"></a>

IAM ユーザーのアクセスキーは定期的に更新する必要があります。「*IAM ユーザーガイド*」の「[Manage access keys for IAM users](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html#Using_RotateAccessKey)」のガイダンスに従ってください。IAM ユーザーのアクセスキーを誤って共有したと思われる場合は、アクセスキーを更新してください。

IAM ユーザーアクセスキーは、ローカルマシンの共有 AWS `credentials`ファイルに保存する必要があります。IAM ユーザーのアクセスキーをコードに保存しないでください。IAM ユーザーのアクセスキーを含む設定ファイルは、いずれのソースコード管理ソフトウェアにも含めないでください。オープンソースプロジェクトの [git-secrets](https://github.com/awslabs/git-secrets) などの外部ツールを使用すると、機密情報を誤って Git リポジトリにコミットすることを防ぐことができます。詳細については、「*IAM ユーザーガイド*」の「[IAM アイデンティティ (ユーザー、ユーザーグループ、ロール)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html)」を参照してください。

はじめに IAM ユーザーを設定するには、「[長期認証情報を使用して AWS SDKsとツールを認証する](access-iam-users.md)」を参照してください。

# 短期認証情報を使用して AWS SDKsとツールを認証する
<a name="access-temp-idc"></a>

 拡張セッション期間オプション[IAM Identity Center を使用して AWS SDK とツールを認証する](access-sso.md)で使用するように AWS SDK またはツールを設定することをお勧めします。ただし、 AWS アクセスポータルで利用可能な一時的な認証情報をコピーして使用できます。有効期限が切れたら、新しい認証情報をコピーする必要があります。一時的な認証情報は、プロファイルで使用することも、システムプロパティや環境変数の値として使用することもできます。

ベストプラクティス: 認証情報ファイル内のアクセスキーとトークンを手動で管理する代わりに、アプリケーションでは以下から配信される一時的な認証情報を使用することをお勧めします。
+ Amazon Elastic Compute Cloud または でアプリケーションを実行するなどのコンピューティング AWS サービス AWS Lambda。
+ [IAM Identity Center を使用して AWS SDK とツールを認証する](access-sso.md) などの、認証情報プロバイダーチェーンの別のオプション。
+ または [プロセス認証情報プロバイダー](feature-process-credentials.md) を使用して一時的な認証情報を取得します。

**AWS アクセスポータルから取得した短期認証情報を使用して認証情報ファイルを設定する**

1. [認証情報の共有ファイルの作成](https://docs.aws.amazon.com/sdkref/latest/guide/file-location.html)。

1. 認証情報ファイルに、作業用の一時認証情報を貼り付けるまで、次のプレースホルダーテキストを貼り付けます。

   ```
   [default]
   aws_access_key_id=<value from AWS access portal>
   aws_secret_access_key=<value from AWS access portal>
   aws_session_token=<value from AWS access portal>
   ```

1. ファイルを保存します。これで、`~/.aws/credentials` ファイルはローカルの開発システムに存在しているはずです。このファイルには、特定の名前付きプロファイルが指定されていない場合に SDK またはツールが使用する [[デフォルト] プロファイル](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html#file-format-profile)が含まれています。

1. [AWS アクセスポータルにサインインします](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtosignin.html)。

1. アクセス AWS ポータルから IAM ロールの[認証情報をコピーするには、認証情報の手動更新](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtogetcredentials.html#how-to-get-temp-credentials)の手順に従います。

   1. リンク先の手順のステップ 4 で、開発ニーズに合ったアクセスを許可する IAM ロールの名前を選択します。通常、このロールには **PowerUserAccess** や **Developer** などの名前が付いています。

   1. リンク先の手順のステップ 7 で、**[ AWS 認証情報ファイルにプロファイルを手動で追加]** オプションを選択し、内容をコピーします。

1. コピーした認証情報をローカル `credentials` ファイルに貼り付けます。`default` プロファイルを使用する場合、生成されたプロファイル名は必要ありません。ファイルは以下のようになります。

   ```
   [default]
   aws_access_key_id=AKIAIOSFODNN7EXAMPLE
   aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
   aws_session_token=IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE
   ```

1. `credentials` ファイルを保存します。

SDK は、サービスクライアントを作成するときに、これらの一時的な認証情報にアクセスしてリクエストごとに使用します。ステップ 5a で選択した IAM ロールの設定により、[一時的な認証情報の有効期間](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtosessionduration.html)が決まります。最大期間は 12 時間です。

一時的な認証情報の有効期限が切れたら、ステップ 4～7 を繰り返します。

# 長期認証情報を使用して AWS SDKsとツールを認証する
<a name="access-iam-users"></a>

**警告**  
セキュリティリスクを避けるため、専用ソフトウェアを開発するときや実際のデータを扱うときは、IAM ユーザーを認証に使用しないでください。代わりに、[AWS IAM アイデンティティセンター](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html) などの ID プロバイダーとのフェデレーションを使用してください。

IAM ユーザーを使用してコードを実行する場合、開発環境の SDK またはツールは、共有 AWS `credentials`ファイルで長期的な IAM ユーザー認証情報を使用して認証します。「[IAM トピックのセキュリティのベストプラクティス](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp)」 を確認し、できるだけ早く IAM Identity Center またはその他の一時的な認証情報に移行してください。

## 認証情報に関する重要な警告とガイダンス
<a name="iam-warnings-and-guidelines"></a>

**認証情報に関する警告**
+ お使いのアカウントのルート認証情報を使用して AWS リソースにアクセス***しないでください***。これらの認証情報は無制限のアカウントアクセスを提供し、取り消すのが困難です。
+ アプリケーションファイルにリテラルアクセスキーや認証情報を***配置しないでください***。これを行うと、パブリックリポジトリにプロジェクトをアップロードするなど、誤って認証情報が公開されるリスクが発生します。
+ プロジェクト領域に認証情報を含むファイルを***含めないでください***。
+ 共有 AWS `credentials`ファイルに保存されている認証情報はすべてプレーンテキストで保存されることに注意してください。

**認証情報を安全に管理するための追加のガイダンス**

 AWS 認証情報を安全に管理する方法の一般的な説明については、『』の[AWS 「アクセスキーを管理するためのベストプラクティス](https://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html)」を参照してください[AWS 全般のリファレンス](https://docs.aws.amazon.com/general/latest/gr/)。そこでの説明に加えて、以下の点を考慮してください。
+ Amazon Elastic Container Service (Amazon ECS) タスクで、[タスク用の IAM ロール](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)を使用します。
+ Amazon EC2 インスタンスで実行中のアプリケーションに対して、[IAM ロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)を使用します。

## 前提条件: AWS アカウントを作成する
<a name="signup"></a>

IAM ユーザーを使用して AWS サービスにアクセスするには、 AWS アカウントと AWS 認証情報が必要です。

1. **アカウントを作成する。**

    AWS アカウントを作成するには、「 *AWS アカウント管理 リファレンスガイド*」の[「開始方法: 初めての AWS ユーザーですか?](https://docs.aws.amazon.com/accounts/latest/reference/welcome-first-time-user.html)」を参照してください。

1. **管理者ユーザーを作成します。**

   マネジメントコンソールとサービスへのアクセスには、root ユーザーアカウント (作成した初期アカウント) を使用しないでください。代わりに、「*IAM ユーザーガイド*」の「[管理ユーザーを作成する](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-set-up.html#create-an-admin)」で説明されているように、管理ユーザーアカウントを作成します。

   管理ユーザーアカウントを作成してログインの詳細を記録したら、**ルートユーザーアカウントから確実にサインアウトし**、管理者アカウントを使用して再度サインインします。

これらのアカウントはいずれも、 での開発 AWS や でのアプリケーションの実行には適していません AWS。そのためには、これらのタスクに適したユーザー、アクセス許可セットまたはサービスロールを作成する必要があります。詳細については、「*IAM ユーザーガイド*」の「[最小特権アクセス許可を適用する](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege)」を参照してください。

## ステップ 1: IAM ユーザーを作成する
<a name="step1authIamUser"></a>
+ 「*IAM ユーザーガイド*」の「[IAM ユーザーの作成 (コンソール)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html#id_users_create_console)」の手順に従って IAM ユーザーを作成します。IAM ユーザーを作成する場合:
  + **[ AWS マネジメントコンソールへのユーザーアクセスを提供]** を選択することをお勧めします。これにより、 AWS CloudTrail 診断ログの確認や Amazon Simple Storage Service へのファイルのアップロードなど、ビジュアル環境で実行しているコードに関連する AWS のサービス を表示できます。これは、コードをデバッグするときに役立ちます。
  + **[アクセス許可を設定]** - **[アクセス許可オプション]** で、このユーザーにアクセス許可を割り当てる方法として **[ポリシーを直接アタッチする]** を選択します。
    + ほとんどの「開始方法」 SDK チュートリアルでは、Amazon S3 サービスを例として使用しています。アプリケーションに Amazon S3 へのフルアクセスを提供するには、このユーザーにアタッチする `AmazonS3FullAccess` ポリシーを選択します。
  + アクセス許可の境界またはタグの設定に関する手順のオプションのステップは無視できます。

## ステップ 2: アクセスキーを取得する
<a name="stepGetKeys"></a>

1. IAM コンソールのナビゲーションペインで **[ユーザー]** を選択し、以前に作成したユーザーの **User name** を選択します。

1. ユーザーのページで、**[セキュリティ認証情報]** ページを選択します。次に、**[アクセスキー]** で **[アクセスキーの作成]** を選択します。

1. **[アクセスキーを作成ステップ1]**で、**[コマンドラインインターフェイス (CLI)]**または**[ローカルコード]**を選択します。どちらのオプションも、 AWS CLI と SDKs の両方で使用するのと同じタイプのキーを生成します。

1. **[アクセスキーの作成ステップ 2]** で、オプションのタグを入力して **[次へ]** を選択します。

1. **[アクセスキーの作成ステップ 3]** で、**[.csv ファイルをダウンロード]** を選択し、IAM ユーザーのアクセスキーとシークレットアクセスキーを含む `.csv` ファイルを保存します。この情報は後で必要になります。
**警告**  
適切なセキュリティ対策を講じてこれらの認証情報を安全に保管してください。

1. **[完了]** を選択します。

## ステップ 3: `credentials` 共有ファイルを更新する
<a name="stepauthIamUser"></a>

1. 共有 AWS `credentials` ファイルを作成するか、開きます。このファイルは、`~/.aws/credentials` Linux および macOS システム、および `%USERPROFILE%\.aws\credentials` Windows 上にあります。詳細については、「[認証情報ファイルの場所](https://docs.aws.amazon.com/credref/latest/refdocs/file-location.html)」 を参照してください。

1. 共有 `credentials` ファイルに次のテキストを追加します。ID 値の例とキー値の例を、先にダウンロードした `.csv` ファイルの値に置き換えます。

   ```
   [default]
   aws_access_key_id = AKIAIOSFODNN7EXAMPLE
   aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
   ```

   

1. ファイルを保存します。

認証情報を保存する最も一般的な方法は `credentials` 共有ファイルです。これらは環境変数として設定することもできます。[AWS アクセスキー](feature-static-credentials.md)の環境変数名を参照してください。これは始めるための方法ですが、IAM Identity Center やその他の一時的な認証情報にできるだけ早く移行することをお勧めします。長期認証情報の使用から移行した後は、必ず `credentials` 共有ファイルからこれらの認証情報を削除してください。