Chính sách Quản lý danh tính và quyền truy cập (IAM) chỉ định các chế độ kiểm soát quyền truy cập cho các tài nguyên trên Google Cloud.
Policy
là một tập hợp bindings
. binding
liên kết một hoặc nhiều members
(hoặc các thực thể chính) với một role
. Chủ thể có thể là tài khoản người dùng, tài khoản dịch vụ, nhóm Google và miền (chẳng hạn như G Suite). role
là danh sách các quyền được đặt tên; mỗi role
có thể là một vai trò được xác định trước trong IAM hoặc một vai trò tuỳ chỉnh do người dùng tạo.
Đối với một số loại tài nguyên Google Cloud, binding
cũng có thể chỉ định condition
. Đây là một biểu thức logic chỉ cho phép truy cập vào một tài nguyên nếu biểu thức đó đánh giá là true
. Một điều kiện có thể thêm các quy tắc ràng buộc dựa trên các thuộc tính của yêu cầu, tài nguyên hoặc cả hai. Để tìm hiểu những tài nguyên nào hỗ trợ các điều kiện trong chính sách IAM, hãy xem tài liệu về IAM.
Ví dụ về JSON:
{
"bindings": [
{
"role": "roles/resourcemanager.organizationAdmin",
"members": [
"user:mike@example.com",
"group:admins@example.com",
"domain:google.com",
"serviceAccount:my-project-id@appspot.gserviceaccount.com"
]
},
{
"role": "roles/resourcemanager.organizationViewer",
"members": [
"user:eve@example.com"
],
"condition": {
"title": "expirable access",
"description": "Does not grant access after Sep 2020",
"expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')",
}
}
],
"etag": "BwWWja0YfJA=",
"version": 3
}
Ví dụ về tệp YAML:
bindings:
- members:
- user:mike@example.com
- group:admins@example.com
- domain:google.com
- serviceAccount:my-project-id@appspot.gserviceaccount.com
role: roles/resourcemanager.organizationAdmin
- members:
- user:eve@example.com
role: roles/resourcemanager.organizationViewer
condition:
title: expirable access
description: Does not grant access after Sep 2020
expression: request.time < timestamp('2020-10-01T00:00:00.000Z')
etag: BwWWja0YfJA=
version: 3
Để biết nội dung mô tả về IAM và các tính năng của IAM, hãy xem tài liệu về IAM.
Biểu diễn dưới dạng JSON |
---|
{ "version": integer, "bindings": [ { object ( |
Các trường | |
---|---|
version |
Chỉ định định dạng của chính sách. Các giá trị hợp lệ là Mọi thao tác ảnh hưởng đến liên kết vai trò có điều kiện phải chỉ định phiên bản
Lưu ý quan trọng: Nếu sử dụng Điều kiện IAM, bạn phải thêm trường Nếu một chính sách không bao gồm bất kỳ điều kiện nào, thì các thao tác trên chính sách đó có thể chỉ định bất kỳ phiên bản hợp lệ nào hoặc để trống trường. Để tìm hiểu những tài nguyên nào hỗ trợ các điều kiện trong chính sách IAM, hãy xem tài liệu về IAM. |
bindings[] |
Liên kết danh sách
|
auditConfigs[] |
Chỉ định cấu hình ghi nhật ký kiểm tra trên đám mây cho chính sách này. |
etag |
Lưu ý quan trọng: Nếu sử dụng Điều kiện IAM, bạn phải thêm trường Chuỗi được mã hoá base64. |
Liên kết
Liên kết members
(hoặc các bên chính) với role
.
Biểu diễn dưới dạng JSON |
---|
{
"role": string,
"members": [
string
],
"condition": {
object ( |
Các trường | |
---|---|
role |
Vai trò được chỉ định cho danh sách Để biết thông tin tổng quan về các vai trò và quyền trong IAM, hãy xem tài liệu về IAM. Để biết danh sách các vai trò được xác định trước hiện có, hãy xem tại đây. |
members[] |
Chỉ định các thực thể chính yêu cầu quyền truy cập vào một tài nguyên trên Google Cloud.
|
condition |
Điều kiện liên kết với liên kết này. Nếu điều kiện đánh giá là Nếu điều kiện đánh giá thành Để tìm hiểu những tài nguyên nào hỗ trợ các điều kiện trong chính sách IAM, hãy xem tài liệu về IAM. |
Expr
Biểu thị một biểu thức văn bản theo cú pháp Ngôn ngữ diễn đạt thông thường (CEL). CEL là một ngôn ngữ biểu thức giống C. Cú pháp và ngữ nghĩa của CEL được ghi lại tại https://github.com/google/cel-spec.
Ví dụ (So sánh):
title: "Summary size limit"
description: "Determines if a summary is less than 100 chars"
expression: "document.summary.size() < 100"
Ví dụ (Bằng nhau):
title: "Requestor is owner"
description: "Determines if requestor is the document owner"
expression: "document.owner == request.auth.claims.email"
Ví dụ (Logic):
title: "Public documents"
description: "Determine whether the document should be publicly visible"
expression: "document.type != 'private' && document.type != 'internal'"
Ví dụ (Thao tác dữ liệu):
title: "Notification string"
description: "Create a notification string with a timestamp."
expression: "'New message received at ' + string(document.create_time)"
Các biến và hàm chính xác có thể được tham chiếu trong một biểu thức được xác định bởi dịch vụ đánh giá biểu thức đó. Hãy xem tài liệu về dịch vụ để biết thêm thông tin.
Biểu diễn dưới dạng JSON |
---|
{ "expression": string, "title": string, "description": string, "location": string } |
Các trường | |
---|---|
expression |
Biểu diễn văn bản của một biểu thức theo cú pháp Ngôn ngữ biểu thức chung. |
title |
Không bắt buộc. Tiêu đề của biểu thức, tức là một chuỗi ngắn mô tả mục đích của biểu thức. Bạn có thể sử dụng tính năng này, ví dụ: trong các giao diện người dùng cho phép nhập biểu thức. |
description |
Không bắt buộc. Nội dung mô tả biểu thức. Đây là văn bản dài hơn mô tả biểu thức, ví dụ: khi di chuột qua biểu thức đó trong giao diện người dùng. |
location |
Không bắt buộc. Chuỗi cho biết vị trí của biểu thức để báo cáo lỗi, ví dụ: tên tệp và vị trí trong tệp. |
AuditConfig
Chỉ định cấu hình kiểm tra cho một dịch vụ. Cấu hình xác định những loại quyền được ghi nhật ký và những danh tính (nếu có) được miễn ghi nhật ký. AuditConfig phải có một hoặc nhiều AuditLogConfig.
Nếu có AuditConfigs cho cả allServices
và một dịch vụ cụ thể, thì tập hợp của hai AuditConfigs sẽ được dùng cho dịch vụ đó: các log_types được chỉ định trong mỗi AuditConfig sẽ được bật và exemptedMembers trong mỗi AuditLogConfig sẽ được miễn trừ.
Ví dụ về Chính sách có nhiều AuditConfigs:
{
"auditConfigs": [
{
"service": "allServices",
"auditLogConfigs": [
{
"logType": "DATA_READ",
"exemptedMembers": [
"user:jose@example.com"
]
},
{
"logType": "DATA_WRITE"
},
{
"logType": "ADMIN_READ"
}
]
},
{
"service": "sampleservice.googleapis.com",
"auditLogConfigs": [
{
"logType": "DATA_READ"
},
{
"logType": "DATA_WRITE",
"exemptedMembers": [
"user:aliya@example.com"
]
}
]
}
]
}
Đối với sampleservice, chính sách này cho phép ghi nhật ký DATA_READ, DATA_WRITE và ADMIN_READ. Phương thức này cũng miễn trừ jose@example.com
khỏi việc ghi nhật ký DATA_READ và aliya@example.com
khỏi việc ghi nhật ký DATA_WRITE.
Biểu diễn dưới dạng JSON |
---|
{
"service": string,
"auditLogConfigs": [
{
object ( |
Các trường | |
---|---|
service |
Chỉ định một dịch vụ sẽ được bật tính năng ghi nhật ký kiểm tra. Ví dụ: |
auditLogConfigs[] |
Cấu hình để ghi nhật ký cho từng loại quyền. |
AuditLogConfig
Cung cấp cấu hình để ghi lại một loại quyền. Ví dụ:
{
"auditLogConfigs": [
{
"logType": "DATA_READ",
"exemptedMembers": [
"user:jose@example.com"
]
},
{
"logType": "DATA_WRITE"
}
]
}
Thao tác này sẽ bật tính năng ghi nhật ký "DATA_READ" và "DATA_WRITE", đồng thời miễn trừ jose@example.com khỏi tính năng ghi nhật ký DATA_READ.
Biểu diễn dưới dạng JSON |
---|
{
"logType": enum ( |
Các trường | |
---|---|
logType |
Loại nhật ký mà cấu hình này bật. |
exemptedMembers[] |
Chỉ định những danh tính không gây ra hoạt động ghi nhật ký cho loại quyền này. Theo định dạng tương tự như |
LogType
Danh sách các loại quyền hợp lệ mà bạn có thể định cấu hình tính năng ghi nhật ký. Hoạt động ghi của quản trị viên luôn được ghi lại và không thể định cấu hình.
Enum | |
---|---|
LOG_TYPE_UNSPECIFIED |
Trường hợp mặc định. Không được như vậy. |
ADMIN_READ |
Lượt đọc của quản trị viên. Ví dụ: CloudIAM getIamPolicy |
DATA_WRITE |
Ghi dữ liệu. Ví dụ: Người dùng CloudSQL tạo |
DATA_READ |
Đọc dữ liệu. Ví dụ: Danh sách người dùng CloudSQL |