#author("2023-10-05T15:41:13+09:00","default:irrp","irrp") →認証技術 →Amazon Web Service →AWS その他のサービス →[[SSO関連]] ←AWS SSO/IAM Identity Center についてはこちら #contents *サブトピック [#wad69cd2] -AWS IAMポリシー *一般 [#u27d6bd8] -[[IAMグループとIAMユーザー設定を視覚化するスクリプトを作ってみた - サーバーワークスエンジニアブログ>https://blog.serverworks.co.jp/2023/10/05/125550]] 2023.10 -[[AWSとAzureのID管理の違い【AWS技術者のためのAzure入門 第1回】 | エディフィストの実務に活かせるIT研修>https://jinzai.edifist.co.jp/aws-no1-id-config-compare]] 2023.7 -[[IAM セキュリティの設定ミスの悪用とその検出方法 | コンテナ・セキュリティ | Sysdigブログ | コンテナ・Kubernetes環境向けセキュリティ・モニタリング プラットフォーム>https://www.scsk.jp/sp/sysdig/blog/container_security/iam.html]] 2022.12 -[[IAM Identity Centerの所属するユーザー名とグループ名のリストをシェルスクリプトで抽出してみた | DevelopersIO>https://dev.classmethod.jp/articles/shellscript-identitystore-list-users-in-group/]] 2022.9 -[[同じ名前のIAMプリンシパルを区別する方法 | DevelopersIO>https://dev.classmethod.jp/articles/how-to-distinct-same-iam-principal/]] 2022.9 --IAMプリンシパル名を同じにした場合、ARNは同じになりますが、ユニークIDは異なります。 --プリンシパルごとに区別したい場合はユニークIDを利用しましょう! -[[AWSのマルチアカウント戦略が難しい! | DevelopersIO>https://dev.classmethod.jp/articles/aws-multiaccount-muzu/]] 2022.7 -[[最小権限実現への4ステップアプローチ 前編 | Amazon Web Services ブログ>https://aws.amazon.com/jp/blogs/news/systematic-approach-for-least-privileges-jp/]] 2021 --[[最小権限実現への4ステップアプローチ 後編 | Amazon Web Services ブログ>https://aws.amazon.com/jp/blogs/news/systematic-approach-for-least-privileges-jp2/]] 2021 -[[AWS IAM のコントロールプレーンはバージニア北部リージョンにのみ存在しその設定内容は各リージョンのデータプレーンに伝播される | DevelopersIO>https://dev.classmethod.jp/articles/aws-iam-controlplane-dataplane/]] 2022.6 -[[AWS IAM で障害が起こったらどうなるの? AWS IAM のレジリエンス(復元力)に関する記述がドキュメントに追記されていた | DevelopersIO>https://dev.classmethod.jp/articles/aws-iam-resilience/]] 2022.6 -[[AWS再入門ブログリレー2022 AWS IAM編 | DevelopersIO>https://dev.classmethod.jp/articles/re-introduction-2022-aws-iam/]] 2022.3 -IAMは認証だけでなくリソースの権限管理の機能も併せ持つ *用語 [#yb881824] -[[AWS IAM の概念をざっくり理解する - サーバーワークスエンジニアブログ>https://blog.serverworks.co.jp/re-getting-started-iam]] 2022.4 -[[AWS アクセスキーとは?AWS アクセスキーの作り方や使い方を紹介! | FEnet AWSコラム>https://www.fenet.jp/aws/column/aws-beginner/764/]] 2021.1 -API KEY(プログラムからAWS各種サービスを操作できる --[[Amazon API GatewayでAPIキー認証を設定する>https://dev.classmethod.jp/articles/apigateway-apikey-auth/]] 2015 -MFA…多要素認証 -ARN…AWS上のリソースを一意に特定するID -プリンシパル…認証してエンティティを使う主体のこと。以下のいずれか --人(ユーザ、もしくはフェデレーテッドユーザ) --アプリケーション -IAMの管理単位 --IAMグループ…フラットな階層でしか管理できず、階層構造は持てない --IAMユーザ --IAMロール…EC2上で実行されるプログラムに実行権限を割り当てるのに使う、API KEYが要らなくなる -[[AWS初心者にIAM Policy/User/Roleについてざっくり説明する | DevelopersIO>https://dev.classmethod.jp/articles/iam-policy-user-role-for-primary-of-aws/]] 2020.1 IAM Policyは できること/できないこと を定義し、UserやRoleに紐づけて使う IAM Userは、Policyを紐付けて、ユーザーができることを定義する IAM Roleは、Policyを紐付けて、誰か/AWSのサービス ができることを定義する -プリンシパルエンティティ…プリンシパルがポリシーを付与する対象となるエンティティのことか? --IAMユーザ --IAMグループ --IAMロール -IAMエンティティ…プリンシパルエンティティと一部被っている? --IAMユーザ --IAMロール -[[AWS IAMリソース パスのススメ | DevelopersIO>https://dev.classmethod.jp/articles/aws-iam-with-path/]] 2022.5 --階層構造を作る場合は取得したい単位を考える --後からパスの設定は不可能 -AWS STS: [[Welcome to the AWS Security Token Service API Reference - AWS Security Token Service>https://docs.aws.amazon.com/ja_jp/STS/latest/APIReference/welcome.html]] --AWS provides AWS Security Token Service (AWS STS) as a web service that enables you to request temporary, limited-privilege credentials for AWS Identity and Access Management (IAM) users or for users you authenticate (federated users). --AWS STSとはIAMユーザを持っていないユーザやアプリに対して一時的に利用できるアクセスキーを付与する機能 * IAMロール [#bafdd1f9] -[[IAM Roles Anywhere の認証方式を理解する - サーバーワークスエンジニアブログ>https://blog.serverworks.co.jp/iam_roles_anywhere]] 2023.3 -[[IAM Roles AnywhereをAWS Private CAと連携させ、AWS外から一時クレデンシャルを取得してみた | DevelopersIO>https://dev.classmethod.jp/articles/iam-roles-anywhere-with-aws-pca/]] 2023.1 -[[人が使う IAM ロール(信頼されたエンティティが AWS サービスでない IAM ロール)だけを棚卸しする | DevelopersIO>https://dev.classmethod.jp/articles/iam-role-inventory-aws-cli/]] 2022.12 -[[IAM Roles Anywhereのハンズオンを通して、OpenSSLとか証明書とかについて勉強できたのでメモ - Qiita>https://qiita.com/hatahatahata/items/12a47fc6c3f2e528591a]] 2022.9 -[[AWS IAMロールAnywhereのPKI基盤にHashicorp Vaultを使う | DevelopersIO>https://dev.classmethod.jp/articles/hashicorp-vault-pki-for-iam-role-anywhere/]] 2022.7 -[[同名のIAMユーザーを再作成した場合はスイッチロール先IAMロールの信頼ポリシー更新が必要 | DevelopersIO>https://dev.classmethod.jp/articles/note-when-recreating-iam-user-with-the-same-name/]] 2022.6 -[[IAMロールを削除する際にはインスタンスプロファイルに注意 | DevelopersIO>https://dev.classmethod.jp/articles/delete-iam-role-with-instance-profile/]] 2022.6 -[[[小ネタ] EC2用にIAMロールを作ったのに、EC2へ割り当てられない! | DevelopersIO>https://dev.classmethod.jp/articles/how-to-create-iam-instance-profile-using-amc/]] 2022.5 -[[【小ネタ】GitHub Actions用のIAMロールをAWSマネジメントコンソールから作成する際の注意点 | DevelopersIO>https://dev.classmethod.jp/articles/create-iam-id-provider-for-github-actions-with-management-console/]] 2021.11 **スイッチロール [#db7aa43c] -[[AWS Tools for PowerShellでEC2に割り当てたIAMロールからスイッチロールしてみた | DevelopersIO>https://dev.classmethod.jp/articles/how-to-switch-role-from-ec2-iam-role-with-aws-tools-for-powershell/]] 2023.5 -[[GitHub Actions から OIDC 経由で AWS の複数アカウントに Switch Role する - Adwaysエンジニアブログ>https://blog.engineer.adways.net/entry/2023/05/19/140000]] 2023.5 -[[【30分AWSハンズオン(2)】IAMロールでスイッチロールをしてみよう - サーバーワークスエンジニアブログ>https://blog.serverworks.co.jp/30min-handson-switchrole]] 2023.4 -[[AWSマネジメントコンソールのスイッチロール履歴を使いたくないので自動削除設定をしてみた | DevelopersIO>https://dev.classmethod.jp/articles/aws-management-console-switch-role-history-auto-delete/]] 2023.1 -[[【AWS】スイッチロールを実践してみる - BFT名古屋 TECH BLOG>https://bftnagoya.hateblo.jp/entry/2022/08/08/171735]] 2022.8 -[[ロールの切り替え (コンソール) - AWS Identity and Access Management>https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_roles_use_switch-role-console.html]] 2023.3 -[[帽子をかぶって、スイッチロールをマスターしよう - サーバーワークスエンジニアブログ>https://blog.serverworks.co.jp/switch-role]] 2022.4 -[[IAMのスイッチロールを理解したい | DevelopersIO>https://dev.classmethod.jp/articles/iam-switchrole-for-beginner/]] 2020.2 --複数のアカウントで作業する際にアカウントの切り替えを楽にする機能 **AssumeRole [#se528196] -[[同一の IAM ロール内で AssumeRole してきた IAM ユーザーごとに異なる権限を付与する方法について | DevelopersIO>https://dev.classmethod.jp/articles/tsnote-iam-assumerole-policy-01/]] 2023.5 -[[Assumed-role セッションプリンシパルのサービス名前空間を iam にしたが そっと sts に書き換えられた | DevelopersIO>https://dev.classmethod.jp/articles/assumed-role-session-principal-service-namespace/]] 2022.10 -[[PowerShellでassume-roleを楽にするツールaws-masqueradeを使ってみた | DevelopersIO>https://dev.classmethod.jp/articles/using-aws-masquerade-with-power-shell/]] 2022.6 -[[IAM ロールの PassRole と AssumeRole をもう二度と忘れないために絵を描いてみた | DevelopersIO>https://dev.classmethod.jp/articles/iam-role-passrole-assumerole/]] 2020.12 * IAMユーザ管理 [#zeac37cb] -[[CLI&コンソール作業用のAWS IAMユーザーを作成する - Qiita>https://qiita.com/zono345/items/d1934a812c88b655364a]] 2023.8 -[[AWS IAMで管理ユーザーを作成する - Qiita>https://qiita.com/Taka898/items/91e82a7bb5a9a49d35b2]] 2023.6 -[[IAM ユーザを削除する際の考慮事項を教えてください | DevelopersIO>https://dev.classmethod.jp/articles/tsnote-iam-users-deleting-impact-approach/]] 2023.3 -[[IAMユーザーのパス設定を変更してみる | DevelopersIO>https://dev.classmethod.jp/articles/change-iam-user-path/]] 2022.8 -[[あれ?ログインして使っているIAMユーザー自身とかIAMロールって削除できるんだっけ?を実際にやってみた | DevelopersIO>https://dev.classmethod.jp/articles/can_delete_current_loggedin_iam_user/]] 2022.8 -[[AWS アカウント・ユーザ設計について - Qiita>https://qiita.com/yu-yama-sra/items/c300c65d6a1a24492631]] 2019 -[[IAM ユーザーのパスワードの管理 - AWS Identity and Access Management>https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_credentials_passwords_admin-change-user.html]] --AWS Management Console にサインインして、IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。 --ナビゲーションペインで [Users] (ユーザー) を選択します。 --パスワードを変更するユーザーの名前を選択します。 --[認証情報] タブを選択してから、[サインイン認証情報] で [Console password (コンソールパスワード)] の横の [パスワードの管理] を選択します。 --[Manage console access (コンソールアクセスの管理)] の [Console access (コンソールアクセス)] で、[Enable (有効化)] を選択します (まだ選択していない場合)。コンソールアクセスが無効になっている場合、パスワードは不要です。 --[Set password (パスワードの設定)] で、IAM によってパスワードを自動的に生成するか、カスタムパスワードを作成するかを選択します。 --ユーザーに初回サインイン時に新しいパスワードの作成を求めるには、[Require password reset (パスワードのリセットが必要)] を選択します。次に、[Apply (適用)] を選択します。 重要 --[Require password reset (パスワードのリセットが必要)] オプションを選択した場合は、ユーザーが自分のパスワードを変更するアクセス許可を持っていることを確認します。詳細については、「IAM ユーザーに自分のパスワードを変更する権限を付与する」を参照してください。 -[[[AWS]IAMで作業用ユーザーを作成>https://qiita.com/kono-hiroki/items/c904a61aa2320a83609f]] 2020 -[[IAMユーザガイド>https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/introduction.html]] -[[IAM ユーザーの作成手順 - サーバーワークスエンジニアブログ>https://blog.serverworks.co.jp/2022/01/07/180000]] 2022.1 -[[AWS IAM Userアクセスキーのローテーションを自動化しました | Money Forward Engineers' Blog>https://moneyforward.com/engineers_blog/2022/03/23/automation-for-access-keys/]] 2022.3 -[[IAM ユーザーのアクセスキーの管理 - AWS Identity and Access Management>https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_credentials_access-keys.html]] -[[マルチアカウントな AWS環境のマネジメントコンソールへのアクセス方法をまとめてみた | DevelopersIO>https://dev.classmethod.jp/articles/how-to-access-aws-console-in-multi-accounts/]] 2021.11 --全て IAMユーザー --IAMユーザーからスイッチロール --SSO(SAML) --AWS SSO *フェデレーション [#tadf5608] -IDフェデレーション…使用頻度の低いユーザにアカウントを与えるのではなく一時的な認証を与え、短時間のみサービスへのアクセスを許す仕組み -AWS Security Token Service (STS) と AWS フェデレーションは、どちらも一時的な権限付与の仕組みですが、使用用途や方法が異なる。 -STSは、AWSアカウントの代理人として操作を行うために使用されます。STSを使用すると、一時的なセキュリティトークンを取得して、アクセスキー、シークレットアクセスキー、セッショントークンを使用してAWSサービスにアクセスすることができる。 -AWS フェデレーションは、組織内のユーザーやシステムからAWSにアクセスするために使用する。 -AWS フェデレーションを使用すると、組織内の認証システムとAWSアカウントを連携させることができ、組織内のユーザーやシステムがAWSサービスにアクセスするために必要なアクセスキーやシークレットアクセスキーを取得することができる。 -[[ID プロバイダーとフェデレーション>https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_roles_providers.html]] --すでにユーザー ID を AWS の外で管理している場合、AWS アカウントに IAM ユーザーを作成する代わりに、IAM ID プロバイダーを利用できます。 --ID プロバイダー (IdP) を使用すると、AWS の外部のユーザー ID を管理して、これらの外部ユーザー ID にアカウント内の AWS リソースに対するアクセス許可を与えることができます。 これは、会社に既に企業ユーザーディレクトリなどの独自の ID システムがある場合に便利です。 --また、AWS リソースへのアクセスが必要なモバイルアプリやウェブアプリケーションを作成する場合にも便利です。 -フェデレーション(英:federation)とは、一度認証を通ればその認証情報を使って許可されているすべてのサービスを使えるようにする仕組み --参考:https://wa3.i-3-i.info/word12731.html --「一度認証すればOKだよ!」を意味する言葉が「シングルサインオン(SSO)」で、シングルサインオンを実際に行うための手法のひとつとして「フェデレーション」がある * MFA [#l4d0806b] -[[AWS CLI で MFA を有効化してみた - Qiita>https://qiita.com/sugimount-a/items/5c522af2f5354ab7ab9f]] 2022.12 -[[IAMユーザに2つ目のMFAデバイスを登録してみる - サーバーワークスエンジニアブログ>https://blog.serverworks.co.jp/multiple-mfa-device]] 2022.11 -[[AWS MFAの設定 - Qiita>https://qiita.com/akkisu/items/f9695d0c635d74d2d7ee]] 2015 -[[AWS での多要素認証 (MFA) の使用 - AWS Identity and Access Management>https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_credentials_mfa.html]] -簡単に言うと、スマホなどにOTPツールを入れてそのパスワードを入れるような仕組みにする