Có thể có những tình huống bạn muốn cung cấp quyền truy cập cho các người dùng hoặc nhóm cụ thể trong một khoảng thời gian nhất định, như cấp quyền cho Security Auditors trong thời gian kiểm toán hoặc cho các tư vấn viên trong thời gian dự án. Trong những tình huống này, bạn có thể sử dụng permission sets với inline policies có chứa điều kiện để cung cấp time-based access control. Trong module này, chúng ta sẽ xem xét trường hợp cung cấp quyền truy cập tạm thời vào AWS accounts cho Security Auditor. Để thực hiện yêu cầu này với time-based access control, bạn cần thực hiện các bước sau:
Điều hướng đến IAM Identity Center Console
Chọn AWS Region được đề xuất bởi AWS Team nếu đây là một phần của AWS Event. Nếu bạn đang thực hiện điều này một mình, hãy chọn Region mà bạn dự định cấu hình quy tắc.
Nhấp vào Permission sets trong menu bên trái dưới mục Multi-account permissions và nhấp vào nút Create permission set.
Trong trang Select permission set type:
Trong trang Specify policies:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"acm:Describe*",
"acm:List*",
"cloudtrail:Describe*",
"cloudtrail:Get*",
"cloudtrail:GetTrailStatus",
"cloudtrail:ListTags",
"cloudtrail:LookupEvents",
"cloudwatch:Describe*",
"cloudwatch:ListTagsForResource",
"config:BatchGetAggregateResourceConfig",
"config:BatchGetResourceConfig",
"config:Deliver*",
"config:Describe*",
"config:Get*",
"config:List*",
"detective:GetGraphIngestState",
"detective:ListGraphs",
"detective:ListMembers",
"ec2:Describe*",
"ec2:Get*",
"guardduty:DescribePublishingDestination",
"guardduty:Get*",
"guardduty:List*",
"iam:GenerateCredentialReport",
"iam:GenerateServiceLastAccessedDetails",
"iam:Get*",
"iam:List*",
"inspector:Describe*",
"kms:Describe*",
"kms:Get*",
"kms:List*",
"s3:Get*",
"s3:List*",
"secretsmanager:DescribeSecret",
"secretsmanager:GetResourcePolicy",
"secretsmanager:List*",
"securityhub:Describe*",
"securityhub:Get*",
"securityhub:List*",
"trustedadvisor:Describe*"
],
"Resource": "*",
"Condition": {
"DateGreaterThan": {
"aws:CurrentTime": "2022-07-26T00:00:00Z"
},
"DateLessThan": {
"aws:CurrentTime": "2022-07-27T23:59:59Z"
}
}
}
]
}
Nhấp Next
Trong trang Specify permission set details:
Trong trang Review and create:
Hãy tạo Group mới có tên securityAuditors:
Điều hướng đến IAM Identity Center Console
Chọn Groups dưới mục Workplace pool và nhấp Create Group.
Trong trang Create group:
Đối với module này, chúng ta sẽ tạo một user mới: secAuditUser
Điều hướng đến IAM Identity Center Console
Chọn Users dưới mục Workplace pool và nhấp Add User.
Trong trang Add User:
Trong trang Add users to groups - optional:
Trong trang Review and add user:
Một cửa sổ pop-up sẽ xuất hiện với One-time password. Sao chép thông tin bằng nút Copy và lưu lại để sử dụng sau trong workshop.
Điều hướng đến IAM Identity Center Console, chọn AWS accounts dưới mục Multi-account permissions
Chọn tài khoản mà bạn muốn người dùng có quyền truy cập.
Nhấp Assign users or groups.
Trong trang Assign users and Group to AccountName:
Trong trang Select permission sets:
Trong trang Review and submit:
IAM Identity Center sẽ liên kết User group với Permission set và gán nó cho AWS Account được chọn. Bạn sẽ thấy một trang với banner màu xanh lá.
Lưu ý: Để có trải nghiệm tốt hơn, bạn nên thực hiện các bước xác minh sau trong chế độ duyệt web riêng tư hoặc trình duyệt web khác
Đăng nhập vào AWS access Portal bằng URL User portal đã lưu khi tạo secAuditUser
Cung cấp username cho người dùng đã tạo trước đó trong module này
Cung cấp mật khẩu một lần cho username
Đặt mật khẩu mới cho người dùng
Sau khi đăng nhập thành công, trên trang SSO portal, chọn liên kết Management console cho vai trò secAuditorTimeBased
Sau khi đăng nhập thành công vào Management Console, điều hướng đến trang EC2 console và xác nhận rằng bạn có thể liệt kê tất cả các instances bằng cách chọn Instances trong menu bên trái
Để mô phỏng việc kiểm soát quyền truy cập cho Security Auditors, hãy cập nhật Permission set và cung cấp lại nó trong tài khoản của chúng ta. Chúng ta sẽ mô phỏng bằng cách chọn một khoảng thời gian trong quá khứ (2022-07-04).
Điều hướng đến IAM Identity Center Console
Nhấp vào Permission sets trong menu bên trái và chọn permission set secAuditorTimeBased
Chỉnh sửa inline policy bằng cách nhấp vào nút Edit
Sao chép và thay thế chính sách quyền bằng đoạn mã dưới đây
Thay đổi duy nhất trong chính sách là giá trị ngày/giờ xảy ra trong quá khứ “2022-07-04T00:00:00Z” “2022-07-04T23:59:59Z”
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"acm:Describe*",
"acm:List*",
"cloudtrail:Describe*",
"cloudtrail:Get*",
"cloudtrail:GetTrailStatus",
"cloudtrail:ListTags",
"cloudtrail:LookupEvents",
"cloudwatch:Describe*",
"cloudwatch:ListTagsForResource",
"config:BatchGetAggregateResourceConfig",
"config:BatchGetResourceConfig",
"config:Deliver*",
"config:Describe*",
"config:Get*",
"config:List*",
"detective:GetGraphIngestState",
"detective:ListGraphs",
"detective:ListMembers",
"ec2:Describe*",
"ec2:Get*",
"guardduty:DescribePublishingDestination",
"guardduty:Get*",
"guardduty:List*",
"iam:GenerateCredentialReport",
"iam:GenerateServiceLastAccessedDetails",
"iam:Get*",
"iam:List*",
"inspector:Describe*",
"kms:Describe*",
"kms:Get*",
"kms:List*",
"s3:Get*",
"s3:List*",
"secretsmanager:DescribeSecret",
"secretsmanager:GetResourcePolicy",
"secretsmanager:List*",
"securityhub:Describe*",
"securityhub:Get*",
"securityhub:List*",
"trustedadvisor:Describe*"
],
"Resource": "*",
"Condition": {
"DateGreaterThan": {
"aws:CurrentTime": "2022-07-04T00:00:00Z"
},
"DateLessThan": {
"aws:CurrentTime": "2022-07-04T23:59:59Z"
}
}
}
]
}
Lưu các thay đổi vào Permission set và việc này cung cấp lại permission set cho AWS Account
Đăng nhập lại vào AWS access portal bằng cách làm theo các bước và xác minh quyền truy cập vào EC2 instance. Bạn sẽ thấy rằng secAuditUser không còn quyền liệt kê các EC2 instances nữa.