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 8914a04c1..6ddebe851 100644 --- a/src/pentesting-cloud/aws-security/aws-basic-information/README.md +++ b/src/pentesting-cloud/aws-security/aws-basic-information/README.md @@ -46,7 +46,7 @@ aws organizations create-organizational-unit --parent-id r-lalala --name TestOU 绕过此限制的唯一方法是同时妥协配置 SCP 的 **主账户**(主账户无法被阻止)。 > [!WARNING] -> 请注意,**SCP 仅限制账户中的主体**,因此其他账户不受影响。这意味着拥有一个 SCP 拒绝 `s3:GetObject` 不会阻止人们 **访问您账户中的公共 S3 存储桶**。 +> 请注意,**SCP 仅限制账户中的主体**,因此其他账户不受影响。这意味着拥有一个拒绝 `s3:GetObject` 的 SCP 不会阻止人们 **访问您账户中的公共 S3 存储桶**。 SCP 示例: @@ -55,11 +55,9 @@ SCP 示例: - 仅允许白名单服务 - 拒绝禁用 GuardDuty、CloudTrail 和 S3 公共阻止访问 -- 拒绝安全/事件响应角色被删除或 +- 拒绝删除或修改安全/事件响应角色。 -修改。 - -- 拒绝备份被删除。 +- 拒绝删除备份。 - 拒绝创建 IAM 用户和访问密钥 在 [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) 中查找 **JSON 示例**。 @@ -78,7 +76,7 @@ RCP 示例: - 限制 S3 存储桶,使其只能被您组织内的主体访问 - 限制 KMS 密钥使用,仅允许来自受信任组织账户的操作 - 限制 SQS 队列的权限,以防止未经授权的修改 -- 在 Secrets Manager 秘密上强制访问边界,以保护敏感数据 +- 强制 Secrets Manager 秘密的访问边界,以保护敏感数据 在 [AWS Organizations Resource Control Policies documentation](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html) 中查找示例。 @@ -89,7 +87,7 @@ RCP 示例: arn:partition:service:region:account-id:resource-type/resource-id arn:aws:elasticbeanstalk:us-west-1:123456789098:environment/App/Env ``` -注意,AWS中有4个分区,但只有3种调用它们的方法: +注意,AWS中有4个分区,但只有3种调用方式: - AWS Standard: `aws` - AWS China: `aws-cn` @@ -102,13 +100,13 @@ IAM是允许您管理**身份验证**、**授权**和**访问控制**的服务 - **身份验证** - 定义身份和验证该身份的过程。此过程可以细分为:识别和验证。 - **授权** - 确定身份在系统中经过身份验证后可以访问的内容。 -- **访问控制** - 授予对安全资源访问的方式和过程。 +- **访问控制** - 授予安全资源访问权限的方法和过程。 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账户的_**根用户**_,通过使用**您用于创建账户的电子邮件地址和密码**进行登录。 请注意,新创建的**管理员用户**将具有**比根用户更少的权限**。 @@ -120,7 +118,7 @@ IAM _用户_是您在AWS中创建的实体,用于**代表使用它与AWS交互 当您创建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保护。如果您想要**使用MFA限制用户的API密钥访问**,您需要在策略中指明为了执行某些操作需要MFA(示例[**在这里**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html))。 #### CLI @@ -169,11 +167,11 @@ IAM角色由**两种类型的策略**组成:**信任策略**,不能为空, #### AWS安全令牌服务(STS) -AWS安全令牌服务(STS)是一个网络服务,便于**发放临时、有限权限的凭证**。它专门用于: +AWS安全令牌服务(STS)是一个网络服务,促进**临时、有限权限凭证的发放**。它专门用于: ### [IAM中的临时凭证](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) -**临时凭证主要与IAM角色一起使用**,但也有其他用途。您可以请求具有比标准IAM用户更有限权限集的临时凭证。这**防止**您**意外执行不被更有限凭证允许的任务**。临时凭证的一个好处是它们在设定的时间段后会自动过期。您可以控制凭证的有效期。 +**临时凭证主要与IAM角色一起使用**,但也有其他用途。您可以请求具有比标准IAM用户更有限权限集的临时凭证。这**防止**您**意外执行不允许的任务**。临时凭证的一个好处是它们在设定的时间段后会自动过期。您可以控制凭证的有效期。 ### 策略 @@ -185,7 +183,7 @@ AWS安全令牌服务(STS)是一个网络服务,便于**发放临时、有 - 客户管理策略:由您配置。您可以基于AWS管理策略创建策略(修改其中一个并创建自己的),使用策略生成器(一个帮助您授予和拒绝权限的GUI视图)或编写自己的策略。 默认情况下,访问**被拒绝**,如果指定了明确的角色,则将授予访问权限。\ -如果**存在单个“拒绝”**,它将覆盖“允许”,但AWS账户的根安全凭证(默认允许)使用的请求除外。 +如果**存在单个“拒绝”**,它将覆盖“允许”,但AWS账户的根安全凭证的请求(默认允许)除外。 ```javascript { "Version": "2012-10-17", //Version of the policy @@ -226,15 +224,15 @@ AWS安全令牌服务(STS)是一个网络服务,便于**发放临时、有 IAM边界可用于**限制用户或角色应有的权限**。这样,即使通过**不同的策略**授予用户不同的权限,如果他尝试使用它们,操作将**失败**。 -边界只是附加到用户的策略,**指示用户或角色可以拥有的最大权限级别**。因此,**即使用户具有管理员访问权限**,如果边界指示他只能读取S·桶,那就是他能做的最大限度。 +边界只是附加到用户的策略,**指示用户或角色可以拥有的最大权限级别**。因此,**即使用户具有管理员访问权限**,如果边界指示他只能读取S·桶,那就是他能做的最大事情。 **这**、**SCPs**和**遵循最小权限**原则是控制用户权限不超过其所需权限的方式。 ### 会话策略 -会话策略是在某种情况下**假设角色时设置的策略**。这将类似于该会话的**IAM边界**:这意味着会话策略不授予权限,而是**将权限限制为策略中指示的权限**(最大权限为角色拥有的权限)。 +会话策略是在某种情况下**假设角色时设置的策略**。这将类似于该会话的**IAM边界**:这意味着会话策略不授予权限,而是**将权限限制为策略中指示的权限**(最大权限为角色所拥有的权限)。 -这对于**安全措施**非常有用:当管理员要假设一个特权很高的角色时,他可以将权限限制为仅在会话策略中指示的权限,以防会话被破坏。 +这对于**安全措施**非常有用:当管理员要假设一个特权很高的角色时,他可以将权限限制为会话策略中指示的权限,以防会话被破坏。 ```bash aws sts assume-role \ --role-arn \ @@ -242,9 +240,9 @@ 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)。 -因此,如果在某个时刻您遇到错误“...因为没有会话策略允许...”,而角色有权限执行该操作,那是因为**有一个会话策略阻止了它**。 +因此,如果在某个时刻您遇到错误“...因为没有会话策略允许...”,而角色有权限执行该操作,那是因为**存在一个会话策略阻止它**。 ### 身份联合 @@ -259,7 +257,7 @@ aws sts assume-role \ ### IAM 身份中心 -AWS IAM 身份中心(AWS 单点登录的继任者)扩展了 AWS 身份和访问管理(IAM)的功能,提供一个**集中位置**,将**用户及其对 AWS** 账户和云应用程序的访问管理汇集在一起。 +AWS IAM 身份中心(AWS 单点登录的继任者)扩展了 AWS 身份和访问管理(IAM)的功能,提供一个**中央位置**,将**用户及其对 AWS** 帐户和云应用程序的访问管理汇集在一起。 登录域将类似于 `.awsapps.com`。 @@ -271,20 +269,20 @@ AWS IAM 身份中心(AWS 单点登录的继任者)扩展了 AWS 身份和访
-在身份中心目录的最简单情况下,**身份中心将拥有用户和组的列表**,并能够**为他们分配策略**到**组织的任何账户**。 +在身份中心目录的最简单情况下,**身份中心将拥有用户和组的列表**,并能够**将策略分配**给他们,以**访问组织的任何帐户**。 -为了给予身份中心用户/组对账户的访问,将创建一个**信任身份中心的 SAML 身份提供者**,并在目标账户中创建一个**信任身份提供者并具有指示策略的角色**。 +为了给予身份中心用户/组对帐户的访问,将创建一个**信任身份中心的 SAML 身份提供者**,并在目标帐户中创建一个**信任身份提供者并具有指示策略的角色**。 #### AwsSSOInlinePolicy -可以通过**内联策略向通过 IAM 身份中心创建的角色授予权限**。在被授予**AWS 身份中心内联策略**的账户中创建的角色将具有名为**`AwsSSOInlinePolicy`**的内联策略中的这些权限。 +可以通过**内联策略向通过 IAM 身份中心创建的角色授予权限**。在被授予**AWS 身份中心内联策略**的帐户中创建的角色将具有名为**`AwsSSOInlinePolicy`**的内联策略中的这些权限。 因此,即使您看到两个具有名为**`AwsSSOInlinePolicy`**的内联策略的角色,也**并不意味着它们具有相同的权限**。 ### 跨账户信任和角色 -**用户**(信任)可以创建一个带有某些策略的跨账户角色,然后**允许另一个用户**(受信任)**访问他的账户**,但仅**具有新角色策略中指示的访问权限**。要创建此角色,只需创建一个新角色并选择跨账户角色。跨账户访问的角色提供两个选项。提供您拥有的 AWS 账户之间的访问,以及提供您拥有的账户与第三方 AWS 账户之间的访问。\ -建议**指定被信任的用户,而不是放置一些通用的内容**,因为如果不这样做,其他经过身份验证的用户(如联合用户)也可能滥用此信任。 +**用户**(信任)可以创建一个带有某些策略的跨账户角色,然后**允许另一个用户**(受信任)**访问他的帐户**,但仅**具有新角色策略中指示的访问权限**。要创建此角色,只需创建一个新角色并选择跨账户角色。跨账户访问的角色提供两个选项。提供您拥有的 AWS 账户之间的访问,以及提供您拥有的账户与第三方 AWS 账户之间的访问。\ +建议**指定被信任的用户,而不是放置一些通用内容**,因为如果不这样做,其他经过身份验证的用户(如联合用户)也可能滥用此信任。 ### AWS Simple AD @@ -294,7 +292,7 @@ AWS IAM 身份中心(AWS 单点登录的继任者)扩展了 AWS 身份和访 - AD 管理中心 - 完整的 PS API 支持 - AD 回收站 -- 组托管服务账户 +- 组托管服务帐户 - 架构扩展 - 无法直接访问操作系统或实例 @@ -359,7 +357,7 @@ aws_access_key_id = AKIA8YDCu7TGTR356SHYT aws_secret_access_key = uOcdhof683fbOUGFYEQuR2EIHG34UY987g6ff7 region = eu-west-2 ``` -如果您需要访问**不同的AWS账户**,并且您的配置文件被授予访问**在这些账户内假设角色**的权限,您不需要每次手动调用STS(`aws sts assume-role --role-arn --role-session-name sessname`)并配置凭证。 +如果您需要访问**不同的AWS账户**,并且您的配置文件被授予访问**在这些账户内假设角色**的权限,您就不需要每次手动调用STS(`aws sts assume-role --role-arn --role-session-name sessname`)并配置凭证。 您可以使用`~/.aws/config`文件来[**指示要假设的角色**](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-role.html),然后像往常一样使用`--profile`参数(`assume-role`将以透明的方式为用户执行)。\ 配置文件示例: @@ -375,7 +373,7 @@ sts_regional_endpoints = regional ``` aws --profile acc2 ... ``` -如果您正在寻找类似于此但适用于**浏览器**的内容,可以查看**扩展** [**AWS Extend Switch Roles**](https://chrome.google.com/webstore/detail/aws-extend-switch-roles/jpmkfafbacpgapdghgdpembnojdlgkdl?hl=en)。 +如果您正在寻找类似的内容,但针对**浏览器**,您可以查看**扩展** [**AWS Extend Switch Roles**](https://chrome.google.com/webstore/detail/aws-extend-switch-roles/jpmkfafbacpgapdghgdpembnojdlgkdl?hl=en)。 ## 参考文献 diff --git a/src/pentesting-cloud/azure-security/az-services/az-sql.md b/src/pentesting-cloud/azure-security/az-services/az-sql.md index 4be5c7813..c658b16e3 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-sql.md +++ b/src/pentesting-cloud/azure-security/az-services/az-sql.md @@ -38,7 +38,7 @@ Azure SQL 由四个主要产品组成: - 可以分配系统和用户管理的 MI。 - 用于访问加密密钥(如果使用 CMEK)和数据库中的其他服务。 -- 有关可以从数据库访问的 Azure 服务的一些示例,请查看 [this page of the docs](https://learn.microsoft.com/en-us/sql/t-sql/statements/create-external-data-source-transact-sql) +- 有关可以从数据库访问的 Azure 服务的一些示例,请查看 [文档的此页面](https://learn.microsoft.com/en-us/sql/t-sql/statements/create-external-data-source-transact-sql) - 如果分配了多个 UMI,可以指明要使用的默认 UMI。 - 可以为跨租户访问配置联合客户端身份。 @@ -101,7 +101,7 @@ SQL 数据库可以是 **弹性池** 的一部分。弹性池是一种经济高 #### Azure SQL 列级安全 (掩码) 和行级安全 -**Azure SQL 的动态** 数据掩码是一项功能,帮助 **保护敏感信息,通过隐藏它** 来防止未授权用户访问。它不会更改实际数据,而是动态掩盖显示的数据,确保像信用卡号码这样的敏感细节被遮蔽。 +**Azure SQL 的动态** 数据掩码是一项功能,帮助 **通过隐藏敏感信息** 来 **保护敏感信息**。它不是改变实际数据,而是动态掩盖显示的数据,确保像信用卡号码这样的敏感细节被遮蔽。 **动态数据掩码** 影响所有用户,除了未被掩盖的用户(这些用户需要被指明)和管理员。它具有配置选项,指定哪些 SQL 用户免于动态数据掩码,**管理员始终被排除在外**。 @@ -304,11 +304,11 @@ $Connection.Close() invoke-sql 'Select Distinct TABLE_NAME From information_schema.TABLES;' ``` -您还可以使用 sqlcmd 访问数据库。重要的是要知道服务器是否允许公共连接 `az sql server show --name --resource-group `,以及防火墙规则是否允许我们的 IP 访问: +您还可以使用 sqlcmd 访问数据库。了解服务器是否允许公共连接很重要 `az sql server show --name --resource-group `,以及防火墙规则是否允许我们的 IP 访问: ```bash sqlcmd -S .database.windows.net -U -P -d ``` -## References +## 参考文献 - [https://learn.microsoft.com/en-us/azure/azure-sql/azure-sql-iaas-vs-paas-what-is-overview?view=azuresql](https://learn.microsoft.com/en-us/azure/azure-sql/azure-sql-iaas-vs-paas-what-is-overview?view=azuresql) - [https://learn.microsoft.com/en-us/azure/azure-sql/database/single-database-overview?view=azuresql](https://learn.microsoft.com/en-us/azure/azure-sql/database/single-database-overview?view=azuresql)