Có thể giới hạn người dùng / tài khoản AWS ở một khu vực cụ thể không?


24

Chúng tôi điều hành một số dịch vụ AWS trong khu vực eu-west-1. Thật không may, có vẻ như nhiều nhà phát triển và nhân viên khác của chúng tôi, những người cần tạo tài nguyên tạm thời quên đi khía cạnh này của AWS và không chọn khu vực này trước khi khởi chạy các phiên bản EC2, tạo các thùng S3, v.v. Kết quả là họ thường kết thúc khu vực us-East-1 vì đó dường như là mặc định mà AWS luôn sử dụng.

Có cách nào thông qua IAM (hoặc một số cách khác) để hạn chế tài khoản người dùng chỉ khởi chạy / tạo mọi thứ trong một khu vực cụ thể không?

Câu trả lời:


25

Thật không may, bạn không thể làm điều này trên toàn cầu. Tuy nhiên, đối với mỗi sản phẩm AWS hỗ trợ nó, bạn thường có thể giới hạn quyền truy cập vào một khu vực nhất định.

Chẳng hạn, đối với EC2, bạn có thể làm như sau:

{
  "Statement":[{
    "Effect":"allow",
    "Action":"RunInstances",
    "Resource":"*",
    "Condition":{
      "StringEquals":{
        "ec2:Region":"us-west-1"
        }
      }
    }
  ]
}

Tất nhiên, bạn cũng cần ban hành một denyquy tắc khi thích hợp.

Đây là tài liệu cho ở trên.


Hoàn hảo. Điều này trông giống như chính xác những gì tôi cần. Cảm ơn!
Bruce P

5
Thay vì "Condition": { "condition": {} }nó nên nêu"Condition": { "StringEquals": {} }
Jasny - Arnold Daniels

Còn các dịch vụ khác như S3 thì sao?
Yves M.

7

Kể từ ngày 25 tháng 4 năm 2018, AWS có nguồn tài nguyên toàn cầu: RequestedRegion bạn có thể sử dụng để giới hạn các khu vực mà người dùng có thể gửi yêu cầu. Điều này độc lập với dịch vụ mang tính khu vực hay không, vì vậy bạn có thể áp dụng nó cho tất cả các dịch vụ.

Blog bảo mật AWS

Thật không may, bạn không thể sử dụng điều này trong Chính sách kiểm soát dịch vụ của một tổ chức để áp dụng nó vào tài khoản trên toàn cầu và bạn phải đính kèm chính sách cho từng hiệu trưởng và kiểm tra rằng điều này là như vậy, nếu bạn muốn khóa tài khoản ở một số khu vực nhất định.


6

Sử dụng một cái gì đó như thế này. Ví dụ này hạn chế quyền truy cập vào hai vùng AWS. Sửa đổi khi cần thiết.

{
  "Version": "2012-10-17",
  "Statement": [{
    "Effect": "Deny",
    "Action": "*",
    "Resource": "*",
    "Condition": {
      "StringNotEquals": {
        "aws:RequestedRegion": [
          "eu-central-1",
          "eu-west-1"
        ]
      }
    }
  }]
}

3
Với cái mới aws:RequestedRegion, đây là câu trả lời có liên quan nhất hiện nay
majikman

1
Cảm ơn bạn, với chính sách này, bạn có thể sử dụng các chính sách có sẵn AWS mặc định và chỉ đính kèm một nội tuyến này và bạn hạn chế hiệu quả bất kỳ dịch vụ nào.
lkraider

4

Chấp nhận câu trả lời về chủ đề này đã cho Syntax Error on Policy. Dưới đây làm việc cho tôi:

{
"Statement": [
    {
        "Sid": "Stmt1375943389569",
        "Action": "ec2:*",
        "Effect": "Allow",
        "Resource": "*",
        "Condition": {
            "StringEquals": {
                "ec2:Region": "eu-central-1"
            }
        }
    }
]

}


3

Nếu bạn chỉ yêu cầu các hành động EC2, thì có, bạn có thể giới hạn nó như được đề cập trong các phản hồi khác. Nếu đó là các dịch vụ khác, tôi không chắc bạn có thể làm điều đó ... ví dụ AWS Lambda dường như không có lambda:regionbạn có thể thêm vào một điều kiện.


0

Từ Câu hỏi thường gặp cho AWS IAM :

Q: Người dùng có thể được xác định theo khu vực? Không phải ban đầu. Người dùng là các thực thể toàn cầu, giống như Tài khoản AWS ngày nay. Không có khu vực được yêu cầu phải được chỉ định khi xác định quyền của người dùng. Người dùng có thể sử dụng dịch vụ AWS ở bất kỳ khu vực địa lý nào.


3
Ồ Thật là một câu trả lời kém bằng văn bản từ Amazon. "Không phải ban đầu." Điều đó có nghĩa là nó có thể được thực hiện sau khi tài khoản được tạo? Điều đó có nghĩa là AWS không thể khi nó được ra mắt lần đầu tiên nhưng bây giờ có thể? "Không có khu vực được yêu cầu phải được chỉ định khi xác định quyền của người dùng." Tôi đã không hỏi nếu nó được yêu cầu. Tôi hỏi nếu có thể làm như vậy. "người dùng có thể sử dụng dịch vụ AWS ở bất kỳ khu vực địa lý nào." Rõ ràng không còn nữa dựa trên những gì EEAA đã đăng ở trên. Câu lệnh "điều kiện" trong IAM cho phép bạn hạn chế một số dịch vụ theo vùng. Cảm ơn chỉ như vậy.
Bruce P

1
@BruceP - đó không phải là một câu trả lời kém. Nó hoàn toàn ổn. Người dùng là toàn cầu. Đặc quyền người dùng có thể bị hạn chế.
EEAA

0

Tôi thấy điều này hoạt động tốt hơn (cho phép khởi chạy / dừng / kết thúc / v.v.) để cấp quyền truy cập EC2 đầy đủ cho người dùng chỉ một vùng - mọi vùng khác đều hiển thị lỗi trong bất kỳ lần truy cập nào.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": "*",
            "Effect": "Allow",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "ec2:Region": "us-east-1"
                }
            }
        }
    ]
}

0

Cái này hiệu quả với tôi, tôi đã cố gắng tạo chính sách với json được đề cập như một câu trả lời được chấp nhận nhưng nó không hiệu quả với tôi.

{
    "Version": "2012-10-17",
    "Statement": [{
        "Action": "ec2:*",
        "Effect": "Allow",
        "Resource": "*",
        "Condition": {
            "StringEquals": {
                "ec2:Region": [
                    "us-east-1"
                ]
            }
        }
    }]
}

0

Đó là giải pháp hiện tại - sử dụng "eu-west-1":

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect"    : "Allow",
            "Action"    : "*",
            "Resource"  : "*",
            "Condition": 
            {
                "StringEquals": {
                    "aws:RequestedRegion": "eu-west-1"
                }
            }
        }
    ]
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.