Translated ['src/pentesting-cloud/aws-security/aws-basic-information/REA

This commit is contained in:
Translator
2025-04-07 01:17:41 +00:00
parent 63c7e022b2
commit 65d75b88f3

View File

@@ -22,7 +22,7 @@
- 管理邀请
- 对组织内的实体根、OU 或账户)应用政策
- 启用与支持的 AWS 服务的集成,以在组织中的所有账户之间提供服务功能。
- 可以使用创建此根账户/组织时使用的电子邮件和密码作为根用户登录。
- 可以使用用于创建此根账户/组织的电子邮件和密码根用户身份登录。
管理账户具有 **付款账户的责任**,并负责支付所有成员账户产生的费用。您无法更改组织的管理账户。
@@ -46,7 +46,7 @@ aws organizations create-organizational-unit --parent-id r-lalala --name TestOU
绕过此限制的唯一方法是同时妥协配置 SCP 的 **主账户**(主账户无法被阻止)。
> [!WARNING]
> 请注意,**SCP 仅限制账户中的主体**,因此其他账户不受影响。这意味着拥有一个拒绝 `s3:GetObject` 的 SCP 不会阻止人们 **访问您账户中的公共 S3 存储桶**。
> 请注意,**SCP 仅限制账户中的主体**,因此其他账户不受影响。这意味着拥有一个 SCP 拒绝 `s3:GetObject` 不会阻止人们 **访问您账户中的公共 S3 存储桶**。
SCP 示例:
@@ -76,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) 中查找示例。
@@ -87,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`
@@ -100,7 +100,7 @@ IAM是允许您管理**身份验证**、**授权**和**访问控制**的服务
- **身份验证** - 定义身份和验证该身份的过程。此过程可以细分为:识别和验证。
- **授权** - 确定身份在系统中经过身份验证后可以访问的内容。
- **访问控制** - 授予安全资源访问权限的方和过程。
- **访问控制** - 授予安全资源访问的方和过程。
IAM可以通过其管理、控制和治理身份对您AWS账户内资源的身份验证、授权和访问控制机制的能力来定义。
@@ -118,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
@@ -222,7 +222,7 @@ AWS安全令牌服务STS是一个网络服务促进**临时、有限权
### IAM边界
IAM边界可用于**限制用户或角色应有的权限**。这样,即使通过**不同的策略**授予用户不同的权限,如果他尝试使用它们,操作将**失败**。
IAM边界可以用来**限制用户或角色应有的权限**。这样,即使通过**不同的策略**授予用户不同的权限,如果他尝试使用它们,操作将**失败**。
边界只是附加到用户的策略,**指示用户或角色可以拥有的最大权限级别**。因此,**即使用户具有管理员访问权限**如果边界指示他只能读取S·桶那就是他能做的最大事情。
@@ -242,7 +242,7 @@ aws sts assume-role \
```
注意,默认情况下,**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)。
因此,如果在某个时刻您遇到错误“...因为没有会话策略允许...”,而角色有权执行该操作,那是因为**存在一个会话策略阻止它**。
因此,如果在某个时刻您遇到错误“...因为没有会话策略允许...”,而角色有权执行该操作,这意味着**有一个会话策略阻止它**。
### 身份联合
@@ -269,13 +269,13 @@ AWS IAM 身份中心AWS 单点登录的继任者)扩展了 AWS 身份和访
<figure><img src="../../../images/image (279).png" alt=""><figcaption></figcaption></figure>
在身份中心目录的最简单情况下,**身份中心将拥有用户和组的列表**,并能够**将策略分配**给他们,以**访问组织的任何帐户**。
在身份中心目录的最简单情况下,**身份中心将拥有用户和组的列表**,并能够**为他们分配策略**到**组织的任何帐户**。
为了给予身份中心用户/组对帐户的访问,将创建一个**信任身份中心的 SAML 身份提供者**,并在目标帐户中创建一个**信任身份提供者并具有指示策略的角色**。
#### AwsSSOInlinePolicy
可以通过**内联策略向通过 IAM 身份中心创建的角色授予权限**。在被授予**AWS 身份中心内联策略**的帐户中创建的角色将具有名为**`AwsSSOInlinePolicy`**的内联策略中的这些权限。
可以通过**IAM 身份中心创建的角色的内联策略**授予权限。在被授予**AWS 身份中心内联策略**的帐户中创建的角色将具有名为**`AwsSSOInlinePolicy`**的内联策略中的这些权限。
因此,即使您看到两个具有名为**`AwsSSOInlinePolicy`**的内联策略的角色,也**并不意味着它们具有相同的权限**。
@@ -340,7 +340,7 @@ AWS 身份和访问管理IAM提供**细粒度的访问控制**,覆盖所
- `directconnect:DescribeConnections`
- `dynamodb:ListTables`
## 其他
## 杂项
### CLI 身份验证
@@ -357,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-arn> --role-session-name sessname`)并配置凭证。
如果您需要访问**不同的AWS账户**,并且您的配置文件被授予访问**在这些账户内假设角色**的权限您不需要每次手动调用STS`aws sts assume-role --role-arn <role-arn> --role-session-name sessname`)并配置凭证。
您可以使用`~/.aws/config`文件来[**指示要假设的角色**](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-role.html),然后像往常一样使用`--profile`参数(`assume-role`将以透明的方式为用户执行)。\
配置文件示例:
@@ -373,9 +373,26 @@ 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)。
## 参考文献
#### 自动化临时凭证
如果您正在利用一个生成临时凭证的应用程序,每隔几分钟在终端中更新它们可能会很麻烦,因为它们会过期。可以通过在配置文件中使用 `credential_process` 指令来解决此问题。例如,如果您有一些易受攻击的网络应用程序,您可以这样做:
```toml
[victim]
credential_process = curl -d 'PAYLOAD' https://some-site.com
```
请注意,凭据 _必须_ 以以下格式返回到 STDOUT
```json
{
"Version": 1,
"AccessKeyId": "an AWS access key",
"SecretAccessKey": "your AWS secret access key",
"SessionToken": "the AWS session token for temporary credentials",
"Expiration": "ISO8601 timestamp when the credentials expire"
}
```
## 参考
- [https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html)
- [https://aws.amazon.com/iam/](https://aws.amazon.com/iam/)