任务 1:为您的 IAM 用户应用存储桶策略
有 2 个拥有 IAM 账户的用户,USER-A 和 USER-B。您的任务是:
- 完全限制用户 B 查看或与名称包含以下内容的存储桶中的任何数据进行交互
patientdata
- 授予用户 A 对该存储桶中所有数据的完全访问权限。
1:检查你的 S3 存储桶策略
您检查过 S3 存储桶策略吗?那里应该定义了权限声明。
2:如何创建 S3 存储桶策
S3 存储桶策略由遵循特定格式的 JSON 格式语句组成。每个策略都包含效果、主体、操作和资源。效果是指语句的最终效果,例如允许某事或拒绝某事。主体是指被允许的人,例如 IAM 用户或角色(以 ARN 表示)。操作是指您允许主体执行或不执行哪些特定操作,例如 GetObject。最后,资源是指 AWS 资源。
尖端:
- 资源是我们授予或拒绝权限的存储桶。
- 如果您愿意,您可以在 AWS 控制台中访问策略生成器!
3:分步说明
- 转到您的 AWS 控制台并搜索 S3 服务。
- 在您的 S3 控制台中,您应该看到已经创建的不同存储桶。
- 选择以 jam-challenge-patientdata* 开头的存储桶并记下该存储桶名称。
- 转到权限,向下滚动并找到存储桶策略部分。
- 点击编辑
- 删除现有的示例内容并粘贴以下政策。
- 使用右上角的 AWS 账号更新“Replace_with_AWS_Account_number”的值
- 将“Replace_with_Bucket_name”替换为您在步骤 3 中捕获的存储桶名称。
- 单击“保存更改”。
{
"Version": "2012-10-17",
"Statement": [{
"Sid": "Statement1",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::Replace_with_AWS_Account_number:user/USER-A"
},
"Action": "s3:Get*",
"Resource": [
"arn:aws:s3:::Replace_with_Bucket_name",
"arn:aws:s3:::Replace_with_Bucket_name/*"
]
},
{
"Sid": "Statement2",
"Effect": "Deny",
"Principal": {
"AWS": "arn:aws:iam::Replace_with_AWS_Account_number:user/USER-B"
},
"Action": "s3:Get*",
"Resource": [
"arn:aws:s3:::Replace_with_Bucket_name",
"arn:aws:s3:::Replace_with_Bucket_name/*"
]
}
]
}
任务 2:上传示例文件并启用 S3 访问日志
- 从这里下载示例患者数据文件[。](https://aws-jam-challenge-resources.s3.amazonaws.com/s-3-accesslogging-monitoring/patient.csv)
- 转到您的 AWS 控制台并搜索 S3 服务。
- 在您的 S3 控制台中,您应该看到已经创建的不同存储桶。
- 选择以 jam-challenge-patientdata* 开头的存储桶
- 点击上传
- 点击添加文件
- 从您的计算机中选择示例患者数据文件并单击上传。
- 如果出现上传状态窗口,请单击“取消”。
- 转到属性,向下滚动并找到服务器访问日志部分。
- 点击编辑
- 选择启用
- 它会要求您提供目标存储桶,请单击浏览 S3
- 选择以 jam-challenge-accesslogs* 开头的存储桶
- 单击“保存更改”。