

# IAM ロールを使用できないワークロード用の IAM ユーザーを作成する
<a name="getting-started-workloads"></a>

**重要**  
[ベストプラクティス](best-practices.md#lock-away-credentials)として、AWS にアクセスする場合には、人間のユーザーに[一時的な認証情報](id_credentials_temp.md)を使用するよう要求することを推奨します。  
または、管理ユーザーを含むユーザー ID を [AWS IAM アイデンティティセンター](https://docs.aws.amazon.com//singlesignon/latest/userguide/getting-started.html) で管理することもできます。IAM Identity Center を使用して、ご自分のアカウントへのアクセスと、それらのアカウント内でのアクセス許可を管理することをお勧めします。外部 ID プロバイダーを使用している場合は、IAM Identity Center でユーザー ID のアクセス許可を設定することもできます。

プログラムによるアクセスと長期認証情報が設定された IAM ユーザーを必要とするユースケースの場合、必要に応じてアクセスキーを更新するための手順を策定することをお勧めします。詳細については、「[アクセスキーを更新する](id-credentials-access-keys-update.md)」を参照してください。

一部のアカウントおよびサービス管理タスクを実行するには、ルートユーザー認証情報を使用してログインする必要があります。ルートユーザーとしてサインインする必要があるタスクを確認するには、「[ルートユーザー認証情報が必要なタスク](id_root-user.md#root-user-tasks)」を参照してください。

## IAM ロールを使用できないワークロード用の IAM ユーザーを作成するには
<a name="getting-started-workloads-section-1"></a>

**最小アクセス許可**  
次の手順を実行するには、少なくとも以下のIAM アクセス許可が必要です。  
`iam:AddUserToGroup`
`iam:AttachGroupPolicy`
`iam:CreateAccessKey`
`iam:CreateGroup`
`iam:CreateServiceSpecificCredential`
`iam:CreateUser`
`iam:GetAccessKeyLastUsed`
`iam:GetAccountPasswordPolicy`
`iam:GetAccountSummary`
`iam:GetGroup`
`iam:GetLoginProfile`
`iam:GetPolicy`
`iam:GetRole`
`iam:GetUser`
`iam:ListAccessKeys`
`iam:ListAttachedGroupPolicies`
`iam:ListAttachedUserPolicies`
`iam:ListGroupPolicies`
`iam:ListGroups`
`iam:ListGroupsForUser`
`iam:ListInstanceProfilesForRole`
`iam:ListMFADevices`
`iam:ListPolicies`
`iam:ListRoles`
`iam:ListRoleTags`
`iam:ListSSHPublicKeys`
`iam:ListServiceSpecificCredentials`
`iam:ListSigningCertificates`
`iam:ListUserPolicies`
`iam:ListUserTags`
`iam:ListUsers`
`iam:UploadSSHPublicKey`
`iam:UploadSigningCertificate`

------
#### [ Console ]

1. *AWSサインインユーザーガイド*の「[AWS へのサインイン方法](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html)」のトピックで説明されているように、ユーザータイプに適したサインイン手順に従ってください。

1. **[IAM コンソールのホーム]** ページの左側のナビゲーションペインで、**[検索の IAM]** テキストボックスにクエリを入力します。

1. ナビゲーションペインで **[ユーザー]**、**[ユーザーを作成]** の順に選択します。

1. **[ユーザーの詳細を指定]** ページで、以下の作業を行います。

   1. [**User name**] に、***WorkloadName*** と入力します。**WorkloadName** を、アカウントを使用するワークロードの名前に置き換えます。

   1. [**次へ**] を選択します。

1. (オプション) **[アクセス許可を設定]** ページで、以下を実行します。

   1. **[ユーザーをグループに追加]** を選択します。

   1. **[グループの作成]** を選択してください。

   1. **[ユーザーグループを作成]** ダイアログボックスの **[ユーザーグループ名]** に、グループ内のワークロードの使用を表す名前を入力します。この例では、**Automation** という名前を使用します。

   1. **[アクセス許可ポリシー]** で、**[PowerUserAccess]** 管理ポリシーのチェックボックスをオンにします。
**ヒント**  
**[アクセス許可ポリシー]** の検索ボックスに Power と入力すると、管理ポリシーをすばやく見つけることができます。

   1. **[ユーザーグループの作成]** を選択します。

   1. IAM グループのリストがあるページに戻り、新しいユーザーグループのチェックボックスをオンにします。新しいユーザーグループがリストに表示されない場合は、[**Refresh (更新)**] を選択します。

   1. [**次へ**] を選択します。

1. (オプション) **[タグ]** ページで、タグをキーと値のペアとしてアタッチして、メタデータをユーザーに追加します。詳細については、「[AWS Identity and Access Management リソースのタグ](id_tags.md)」を参照してください。

1. 新しいユーザーのユーザーグループメンバーシップを確認します。続行する準備ができたら、**[Create user]** (ユーザーの作成) を選択します。

1. ユーザーが正常に作成されたことを示すステータス通知が表示されます。**[ユーザーを表示]** を選択してユーザーの詳細ページに移動します。

1. **[セキュリティ認証情報]** タブを選択します。次に、ワークロードに必要な認証情報を作成します。
   + **アクセスキー** - **[アクセスキーを作成]** を選択して、ユーザーのアクセスキーを生成およびダウンロードします。
**重要**  
シークレットアクセスキーを表示またはダウンロードできるのはこのときだけです。AWS API を使用する前に、ユーザーにこの情報を提供する必要があります。ユーザーの新しいアクセスキー ID とシークレットアクセスキーは、安全な場所に保存してください。**このステップを行った後に、シークレットキーに再度アクセスすることはできません。**
   + **AWS CodeCommit の SSH パブリックキー** – ユーザーが SSH 経由で CodeCommit リポジトリと通信できるように、**[SSH パブリックキーのアップロード]** を選択して SSH パブリックキーをアップロードします。
   + **AWS CodeCommit の HTTPS Git 認証情報** - **[認証情報を生成]** を選択して、Git リポジトリで使用する一意のユーザー認証情報のセットを生成します。**[認証情報をダウンロード]** を選択して、ユーザー名とパスワードを .csv ファイルに保存します。この情報を利用できるのはこのときのみです。パスワードを忘れたり紛失したりした場合は、リセットする必要があります。
   + **Amazon Keyspaces (Apache Cassandra 向け) の認証情報** - **[認証情報を生成]** を選択して、AmazonKeyspaces で使用するサービス固有のユーザー認証情報を生成します。**[認証情報をダウンロード]** を選択して、ユーザー名とパスワードを .csv ファイルに保存します。この情報を利用できるのはこのときのみです。パスワードを忘れたり紛失したりした場合は、リセットする必要があります。
**重要**  
サービス固有の認証情報は、特定の IAM ユーザーに関連付けられた長期の資格情報で、認証情報の作成時に対象としていたサービスにしか使用できません。IAM ロールまたはフェデレーテッドアイデンティティに対し、一時的な資格情報を使用してすべての AWS リソースにアクセスできるアクセス許可を付与するには、Amazon Keyspaces 用の SigV4 認証プラグインで AWS 認証を使用します。詳細については、「Amazon Keyspaces (Apache Cassandra 向け) デベロッパーガイド」の「[Using temporary credentials to connect to Amazon Keyspaces (for Apache Cassandra) using an IAM role and the SigV4 plugin](https://docs.aws.amazon.com/keyspaces/latest/devguide/access.credentials.html#temporary.credentials.IAM)」を参照してください。
   + **X.509 署名証明書** – セキュアな SOAP プロトコルリクエストを行う必要があり、AWS Certificate Manager でサポートされていないリージョンにある場合は、**[Create X.509 Certificate]** を選択します。ACM は、サーバー証明書をプロビジョン、管理、デプロイするための推奨ツールです。ACM の使用の詳細については、「[https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html)」を参照してください。

プログラムによるアクセス権を持つユーザーを作成し、**PowerUserAccess** ジョブ関数で設定しました。このユーザーのアクセス許可ポリシーは、IAM と AWS Organizations を除くすべてのサービスへのフルアクセスを許可します。

ワークロードが IAM ロールを引き受けられない場合、同じプロセスを使用して、追加のワークロードに AWS アカウント リソースへのプログラムによるアクセスを許可できます。この手順では、**[PowerUserAccess]** 管理ポリシーを使用してアクセス許可を割り当てます。最小特権のベストプラクティスに従うには、より制限の厳しいポリシーを使用するか、プログラムに必要なリソースのみへのアクセスを制限するカスタムポリシーを作成することを検討してください。ユーザーアクセス許可を特定の AWS リソースに限定するポリシーの使用方法については、「[AWS リソースの アクセス管理](access.md)」および「[IAM アイデンティティベースのポリシーの例](access_policies_examples.md)」を参照してください。グループの作成後に追加ユーザーグループを追加するには、「[IAM グループのユーザーを編集する](id_groups_manage_add-remove-users.md)」を参照してください。

------
#### [ AWS CLI ]

1. **Automation** という名前のユーザーを作成します。
   + [aws iam create-user](https://docs.aws.amazon.com/cli/latest/reference/iam/create-user.html)

   ```
                 aws iam create-user \
                     --user-name Automation
   ```

1. IAM ユーザーグループを **AutomationGroup** という名前で作成し、そのグループに AWS マネージドポリシー `PowerUserAccess` をアタッチして、グループに **Automation** ユーザーを追加します。
**注記**  
*AWS 管理ポリシー*は、AWS が作成および管理するスタンドアロンポリシーです。各ポリシーには、それぞれ独自の Amazon リソースネーム (ARN) (ポリシー名を含む) があります。たとえば、`arn:aws:iam::aws:policy/IAMReadOnlyAccess` は AWS 管理ポリシーです。ARN の詳細については、[IAM ARN](reference_identifiers.md#identifiers-arns)を参照してください。AWS のサービス に対する AWS マネージドポリシーのリストについては、「[AWS マネージドポリシー](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/policy-list.html)」を参照してください。
   + [aws iam create-group](https://docs.aws.amazon.com/cli/latest/reference/iam/create-group.html) 

     ```
                       aws iam create-group \
                           --group-name AutomationGroup
     ```
   + [aws iam attach-group-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/attach-group-policy.html)

     ```
                       aws iam attach-group-policy \
                           --policy-arn arn:aws:iam::aws:policy/PowerUserAccess \
                           --group-name AutomationGroup
     ```
   + [aws iam add-user-to-group](https://docs.aws.amazon.com/cli/latest/reference/iam/add-user-to-group.html) 

     ```
                      aws iam add-user-to-group \
                          --user-name Automation \
                          --group-name AutomationGroup
     ```
   + [aws iam get-group](https://docs.aws.amazon.com/cli/latest/reference/iam/get-group.html) コマンドを実行して、**AutomationGroup** とそのメンバーをリストします。

     ```
                     aws iam get-group \
                          --group-name AutomationGroup
     ```

1. ワークロードに必要なセキュリティ認証情報を作成します。
   + **[テスト用にアクセスキーを作成]** – [aws iam create-access-key](https://docs.aws.amazon.com/cli/latest/reference/iam/create-access-key.html)

     ```
                            aws iam create-access-key \
                                --user-name Automation
     ```

     このコマンドを出力すると、シークレットアクセスキーとアクセスキー ID が表示されます。この情報を記録して、安全な場所に保管します。こうした認証情報を紛失した場合は回復できないため、新たにアクセスキーを作成しなければなりません。
**重要**  
こうした IAM ユーザーアクセスキーは長期認証情報であり、アカウントにとってはセキュリティリスクです。テストを完了したら、こうしたアクセスキーを削除することをお勧めします。アクセスキーを検討中という場合は、ワークロード IAM ユーザーで MFA を有効にできるかどうかを調べ、IAM アクセスキーを使用するのではなく、[aws sts get-session-token](https://docs.aws.amazon.com/cli/latest/reference/sts/get-session-token.html) を使用してセッション用に一時的な認証情報を取得してください。
   + **[AWS CodeCommit 用に SSH パブリックキーをアップロード]** - [aws iam upload-ssh-public-key](https://docs.aws.amazon.com/cli/latest/reference/iam/upload-ssh-public-key.html)

     以下の例では、SSH パブリックキーが `sshkey.pub` ファイルに保存されていることを前提としています。

     ```
                            aws upload-ssh-public-key \
                                --user-name Automation \
                                --ssh-public-key-body file://sshkey.pub
     ```
   + **[X.509 署名証明書をアップロード]** – [aws iam upload-signing-certificate](https://docs.aws.amazon.com/cli/latest/reference/iam/upload-signing-certificate.html)

     SOAP プロトコルによる安全なリクエストを行う必要があり、AWS Certificate Manager によってサポートされていないリージョンに所属している場合は、X.509 証明書をアップロードしてください。ACM は、サーバー証明書をプロビジョン、管理、デプロイするための推奨ツールです。ACM の使用の詳細については、「[https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html)」を参照してください。

     以下の例では、X.509 署名証明書が `certificate.pem` ファイルに保存されていることを前提としています。

     ```
                           aws iam upload-signing-certificate \
                           --user-name Automation \
                           --certificate-body file://certificate.pem
     ```

ワークロードが IAM ロールを引き受けられない場合、同じプロセスを使用して、追加のワークロードに AWS アカウント リソースへのプログラムによるアクセスを許可できます。この手順では、**[PowerUserAccess]** 管理ポリシーを使用してアクセス許可を割り当てます。最小特権のベストプラクティスに従うには、より制限の厳しいポリシーを使用するか、プログラムに必要なリソースのみへのアクセスを制限するカスタムポリシーを作成することを検討してください。ユーザーアクセス許可を特定の AWS リソースに限定するポリシーの使用方法については、「[AWS リソースの アクセス管理](access.md)」および「[IAM アイデンティティベースのポリシーの例](access_policies_examples.md)」を参照してください。グループの作成後に追加ユーザーグループを追加するには、「[IAM グループのユーザーを編集する](id_groups_manage_add-remove-users.md)」を参照してください。

------