Tác giả: David Victoria, Ahan Malli, and Rohit Srikanta
Ngày phát hành: 08 JAN 2026
Chuyên mục: Advanced (300), Amazon SageMaker, Amazon SageMaker Unified Studio, Technical How-to
Amazon SageMaker đã công bố một tính năng mới mà bạn có thể sử dụng để thêm các thẻ tùy chỉnh vào các tài nguyên được tạo thông qua một dự án Amazon SageMaker Unified Studio. Điều này giúp bạn thực thi các tiêu chuẩn gắn thẻ phù hợp với chính sách kiểm soát dịch vụ (SCP) của tổ chức bạn và giúp kích hoạt các thực hành báo cáo theo dõi chi phí trên các tài nguyên được tạo trên toàn tổ chức.
Với tư cách là quản trị viên SageMaker, bạn có thể cấu hình một hồ sơ dự án với các cấu hình thẻ sẽ được đẩy xuống các dự án hiện đang sử dụng hoặc sẽ sử dụng hồ sơ dự án đó. Hồ sơ dự án được thiết lập để truyền các cặp khóa và giá trị thẻ bắt buộc hoặc truyền khóa của thẻ với một giá trị mặc định có thể được sửa đổi trong quá trình tạo dự án. Tất cả các thẻ được truyền đến dự án sẽ dẫn đến việc các tài nguyên được tạo bởi dự án đó được gắn thẻ. Điều này cung cấp cho bạn một cơ chế quản trị để đảm bảo rằng các tài nguyên dự án có các thẻ mong muốn trên tất cả các dự án của miền.
Bản phát hành đầu tiên của các thẻ tùy chỉnh cho tài nguyên dự án được hỗ trợ thông qua giao diện lập trình ứng dụng (API), thông qua các SDK của Amazon DataZone. Trong bài đăng này, chúng ta sẽ xem xét các trường hợp sử dụng cho các thẻ tùy chỉnh và cách sử dụng AWS Command Line Interface (AWS CLI) để thêm thẻ vào tài nguyên dự án.
Những gì chúng tôi nghe từ khách hàng
Khi khách hàng tiếp tục xây dựng và cộng tác bằng cách sử dụng các công cụ AWS để phát triển mô hình, AI tạo sinh, xử lý dữ liệu và phân tích SQL, họ nhận thấy nhu cầu kiểm soát và hiển thị các tài nguyên đang được tạo. Để hỗ trợ kết nối với các công cụ AWS này từ các dự án SageMaker Unified Studio, nhiều loại tài nguyên khác nhau trên các dịch vụ AWS cần được tạo. Các tài nguyên này được tạo thông qua các stack AWS CloudFormation (thông qua triển khai môi trường dự án) bởi dịch vụ Amazon SageMaker. Từ khách hàng, chúng tôi nghe thấy các trường hợp sử dụng sau:
- Khách hàng cần thực thi các thực hành gắn thẻ phù hợp với chính sách của công ty thông qua việc sử dụng các kiểm soát của AWS, chẳng hạn như SCP, để tạo tài nguyên. Các kiểm soát này chặn việc tạo tài nguyên trừ khi các thẻ cụ thể được đặt trên tài nguyên.
- Khách hàng cũng có thể bắt đầu với các chính sách để thực thi việc đặt các thẻ chính xác khi tài nguyên được tạo với mục tiêu bổ sung là tiêu chuẩn hóa báo cáo tài nguyên. Bằng cách đặt thông tin nhận dạng trên tài nguyên khi được tạo, họ thực thi tính nhất quán và đầy đủ khi thực hiện báo cáo phân bổ chi phí và khả năng quan sát.
Khách hàng Swiss Life sử dụng SageMaker như một giải pháp duy nhất để lập danh mục, khám phá, chia sẻ và quản trị dữ liệu doanh nghiệp của họ trên các lĩnh vực kinh doanh. Họ yêu cầu tất cả các tài nguyên phải có một bộ thẻ bắt buộc để nhóm tài chính của họ lập hóa đơn cho các tổ chức trong công ty của họ đối với các tài nguyên AWS đã tạo.
“Việc ra mắt thẻ tài nguyên dự án cho Amazon SageMaker cho phép chúng tôi hiển thị các chi phí phát sinh trên các tài khoản của mình. Với khả năng này, chúng tôi có thể đáp ứng các hướng dẫn gắn thẻ tài nguyên của công ty và tự tin trong việc phân bổ chi phí trên thiết lập đa tài khoản của chúng tôi cho các tài nguyên được tạo bởi các dự án Amazon SageMaker.”
– Tim Kopacz, Kỹ sư phần mềm tại Swiss Life
Điều kiện tiên quyết
Để bắt đầu với các thẻ tùy chỉnh, bạn phải có các tài nguyên sau:
- Một miền SageMaker Unified Studio.
- Một thực thể AWS Identity and Access Management (IAM) có đặc quyền thực hiện các lệnh gọi AWS CLI đến miền.
- Một thực thể IAM được ủy quyền thực hiện các thay đổi đối với vai trò cấp phép IAM của miền. Nếu SageMaker đã tạo vai trò này cho bạn, nó sẽ được gọi là
AmazonSageMakerProvisioning-<accountId>. Vai trò cấp phép cung cấp và quản lý các tài nguyên được định nghĩa trong các bản thiết kế đã chọn trong tài khoản của bạn.
Cách thiết lập thẻ tài nguyên dự án
Các bước sau đây phác thảo cách bạn có thể cấu hình các thẻ tùy chỉnh cho tài nguyên dự án SageMaker Unified Studio của mình:
- (Tùy chọn) Cập nhật vai trò cấp phép SageMaker để cho phép các khóa thẻ cụ thể.
- Tạo hồ sơ dự án mới với các thẻ tài nguyên dự án đã cấu hình.
- Tạo dự án mới với các thẻ tài nguyên dự án.
- Cập nhật dự án hiện có với các thẻ tài nguyên dự án.
- Xác thực rằng các tài nguyên đã được gắn thẻ.
(Tùy chọn) Cập nhật vai trò cấp phép SageMaker để cho phép các giá trị khóa thẻ
Vai trò AmazonSageMakerProvisioning-<accountId> có một chính sách được quản lý bởi AWS với điều kiện aws:TagKeys cho phép các thẻ được tạo bởi vai trò này chỉ khi khóa thẻ bắt đầu bằng AmazonDataZone. Đối với ví dụ này, chúng ta sẽ thay đổi khóa thẻ để bắt đầu bằng các chuỗi khác nhau. Bỏ qua phần Tạo hồ sơ dự án mới với các thẻ tài nguyên dự án đã cấu hình nếu bạn không cần các khóa thẻ có cấu trúc khác (chẳng hạn như bắt đầu bằng, chứa, v.v.)
- Mở AWS Management Console và truy cập IAM.
- Trong ngăn điều hướng, chọn Roles.
- Trong danh sách, chọn AmazonSageMakerProvisioning- .
- Chọn tab Permissions.
- Chọn Add permissions, sau đó chọn Create inline policy.
- Trong Policy editor, chọn JSON.
- Nhập chính sách sau. Thêm các chuỗi dưới điều kiện
aws:TagKeys. Trong ví dụ này, các khóa thẻ bắt đầu bằng ACME hoặc các khóa thẻ khớp chính xác với CostCenter sẽ được tạo bởi vai trò.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "CustomTagsUnTagPermissions",
"Effect": "Allow",
"Action": [
"codecommit:UntagResource",
"iam:UntagRole",
"logs:UntagResource",
"athena:UntagResource",
"redshift-serverless:UntagResource",
"scheduler:UntagResource",
"bedrock:UntagResource",
"neptune-graph:UntagResource",
"quicksight:UntagResource",
"glue:UntagResource",
"airflow:UntagResource",
"secretsmanager:UntagResource",
"lambda:UntagResource",
"emr-serverless:UntagResource",
"elasticmapreduce:RemoveTags",
"sagemaker:DeleteTags",
"ec2:DeleteTags"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:ResourceAccount": "${aws:PrincipalAccount}"
},
"ForAllValues:StringLike": {
"aws:TagKeys": [
"AmazonDataZone*",
"ACME*",
"CostCenter"
]
},
"Null": {
"aws:ResourceTag/AmazonDataZoneProject": "false"
}
}
},
{
"Sid": "CustomTagsTaggingPermissions",
"Effect": "Allow",
"Action": [
"cloudformation:TagResource",
"codecommit:TagResource",
"iam:TagRole",
"glue:TagResource",
"athena:TagResource",
"lambda:TagResource",
"redshift-serverless:TagResource",
"logs:TagResource",
"secretsmanager:TagResource",
"sagemaker:AddTags",
"emr-serverless:TagResource",
"neptune-graph:TagResource",
"bedrock:TagResource",
"elasticmapreduce:AddTags",
"airflow:TagResource",
"scheduler:TagResource",
"quicksight:TagResource",
"emr-containers:TagResource",
"logs:CreateLogGroup",
"athena:CreateWorkGroup",
"scheduler:CreateScheduleGroup",
"cloudformation:CreateStack",
"ec2:*"
],
"Resource": "*",
"Condition": {
"ForAnyValue:StringLike": {
"aws:TagKeys": [
"AmazonDataZone*",
"ACME*",
"CostCenter"
]
},
"StringEquals": {
"aws:ResourceAccount": "${aws:PrincipalAccount}"
}
}
}
]
}
Có thể giới hạn các quyền gắn thẻ và bỏ gắn thẻ dịch vụ AWS cụ thể dựa trên các bản thiết kế hoặc khả năng đang được sử dụng.
Tạo hồ sơ dự án mới với các thẻ tài nguyên dự án đã cấu hình
Sử dụng các bước sau để tạo hồ sơ dự án SQL Analytics mới với các thẻ tùy chỉnh. Ví dụ sử dụng các lệnh AWS CLI.
- Mở bảng điều khiển AWS CloudShell.
- Tạo hồ sơ dự án bằng lệnh CLI sau.
a. Tham sốproject-resource-tagsbao gồmkey(khóa thẻ),value(giá trị thẻ) vàisValueEditable(boolean cho biết liệu giá trị thẻ có thể được sửa đổi trong quá trình tạo hoặc cập nhật dự án hay không).
b. Tham sốallow-custom-project-resource-tagsđược đặt thànhtruecho phép người tạo dự án tạo thêm các cặp khóa-giá trị. Khóa cần phải tuân thủ chính sách nội tuyến của vai tròAmazonSageMakerProvisioning-<accountId>.
c. Tham sốproject-resource-tags-descriptionlà một trường mô tả cho các thẻ tài nguyên dự án. Giới hạn ký tự tối đa là 2.048. Mô tả cần được truyền mỗi khicreate-project-profilehoặcupdate-project-profileđược gọi.
aws datazone create-project-profile \
--name "SQL Analytics with Project Resource Tags" \
--description "Analyze your data in SageMaker Lakehouse using SQL" \
--domain-identifier "$DOMAIN_ID" \
--region "$REGION" \
--status ENABLED \
--project-resource-tags '[
{
"key": "ACME-Application",
"value": "SageMaker",
"isValueEditable": false
},
{
"key": "CostCenter",
"value": "123",
"isValueEditable": true
}
]' \
--allow-custom-project-resource-tags \
--environment-configurations '[
{
"name": "Tooling",
"description": "Configuration for the Tooling Environment",
"environmentBlueprintId": "",
"deploymentMode": "ON_CREATE",
"deploymentOrder": 0,
"awsAccount": {
"awsAccountId": "$ACCOUNT"
},
"awsRegion": {
"regionName": "$REGION"
},
"configurationParameters": {
"parameterOverrides": [
{
"name": "enableSpaces",
"value": "false",
"isEditable": false
},
{
"name": "maxEbsVolumeSize",
"isEditable": false
},
{
"name": "idleTimeoutInMinutes",
"isEditable": false
},
{
"name": "lifecycleManagement",
"isEditable": false
},
{
"name": "enableNetworkIsolation",
"isEditable": false
}
]
}
},
{
"name": "Lakehouse Database",
"description": "Creates databases in Amazon SageMaker Lakehouse for storing tables in S3 and Amazon Athena resources for your SQL workloads",
"environmentBlueprintId": "",
"deploymentMode": "ON_CREATE",
"deploymentOrder": 1,
"awsAccount": {
"awsAccountId": "$ACCOUNT"
},
"awsRegion": {
"regionName": "$REGION"
},
"configurationParameters": {
"parameterOverrides": [
{
"name": "glueDbName",
"value": "glue_db",
"isEditable": true
}
]
}
},
{
"name": "OnDemand RedshiftServerless",
"description": "Enables you to create an additional Amazon Redshift Serverless workgroup for your SQL workloads",
"environmentBlueprintId": "",
"deploymentMode": "ON_DEMAND",
"awsAccount": {
"awsAccountId": "$ACCOUNT"
},
"awsRegion": {
"regionName": "$REGION"
},
"configurationParameters": {
"parameterOverrides": [
{
"name": "redshiftDbName",
"value": "dev",
"isEditable": true
},
{
"name": "redshiftMaxCapacity",
"value": "512",
"isEditable": true
},
{
"name": "redshiftWorkgroupName",
"value": "redshift-serverless-workgroup",
"isEditable": true
},
{
"name": "redshiftBaseCapacity",
"value": "128",
"isEditable": true
},
{
"name": "connectionName",
"value": "redshift.serverless",
"isEditable": true
},
{
"name": "connectToRMSCatalog",
"value": "false",
"isEditable": false
}
]
}
},
{
"name": "OnDemand Catalog for Redshift Managed Storage",
"description": "Enables you to create additional catalogs in Amazon SageMaker Lakehouse for storing data in Redshift Managed Storage",
"environmentBlueprintId": "",
"deploymentMode": "ON_DEMAND",
"awsAccount": {
"awsAccountId": "$ACCOUNT"
},
"awsRegion": {
"regionName": "$REGION"
},
"configurationParameters": {
"parameterOverrides": [
{
"name": "catalogName",
"isEditable": true
},
{
"name": "catalogDescription",
"value": "RMS catalog",
"isEditable": true
}
]
}
}
]'
Hồ sơ dự án này sẽ có thẻ ACME-Application = SageMaker được đặt trên tất cả các dự án liên kết với hồ sơ dự án và không thể được sửa đổi bởi người tạo dự án. Thẻ CostCenter = 123 có thể có giá trị được sửa đổi bởi người tạo dự án vì thuộc tính isValueEditable được đặt thành true.
Cấp quyền cho người dùng sử dụng hồ sơ dự án trong quá trình tạo dự án. Trong phần Authorization của hồ sơ dự án, đặt là Selected users or groups hoặc Allow all users and groups.
Việc sử dụng tham số allow-custom-project-resource-tags có nghĩa là người tạo dự án có thể thêm các thẻ của riêng họ (cặp khóa-giá trị). Khóa phải tuân thủ kiểm tra điều kiện trong chính sách của vai trò cấp phép (AmazonSageMakerProvisioning-<accountId>). Nếu tham số allow-custom-project-resource-tags được thay đổi thành false sau khi một dự án đã tạo thẻ, các thẻ được tạo bởi dự án sẽ bị xóa trong lần cập nhật dự án tiếp theo.
Cập nhật hồ sơ dự án
Việc cập nhật các thẻ tài nguyên dự án có thể thực hiện được thông qua lệnh update-project-profile. Lệnh này sẽ thay thế tất cả các giá trị trong phần project-resource-tags, vì vậy hãy đảm bảo bao gồm đầy đủ các thẻ. Các cập nhật cho hồ sơ dự án sẽ được phản ánh trong các dự án sau khi chạy lệnh update-project hoặc khi một dự án mới được tạo bằng hồ sơ dự án. Ví dụ sau thêm một thẻ mới, ACME-BusinessUnit = Retail.
Có ba cách để làm việc với tham số project-resource-tags khi cập nhật hồ sơ dự án.
- Truyền một danh sách không trống các thẻ tài nguyên dự án sẽ thay thế các thẻ hiện đang được cấu hình trên hồ sơ dự án.
- Truyền một danh sách trống các thẻ tài nguyên dự án sẽ xóa tất cả các thẻ đã cấu hình trước đó:
--project-resource-tags '[]'
- Không bao gồm tham số thẻ tài nguyên dự án sẽ giữ nguyên các thẻ đã cấu hình trước đó.
aws datazone update-project-profile \
--domain-identifier "$DOMAIN_ID" \
--identifier "$PROJECT_PROFILE_ID" \
--region "$REGION" \
--project-resource-tags '[
{
"key": "ACME-Application",
"value": "SageMaker",
"isValueEditable": false
},
{
"key": "CostCenter",
"value": "123",
"isValueEditable": true
},
{
"key": "ACME-BusinessUnit",
"value": "Retail",
"isValueEditable": false
}
]'
Tạo dự án mới với các thẻ tài nguyên dự án
Các bước sau đây hướng dẫn bạn tạo một dự án mới kế thừa các thẻ từ hồ sơ dự án và cho phép người tạo dự án sửa đổi một trong các giá trị thẻ.
- Tạo một dự án bằng cách sử dụng lệnh CLI ví dụ sau.
- Sửa đổi giá trị thẻ
CostCenterbằng cách sử dụng tham số--resource-tags. Các thẻ được cấu hình trên hồ sơ dự án nơi thuộc tínhisValueEditablelàfalsesẽ tự động được đẩy vào dự án.
aws datazone create-project \
--domain-identifier "$DOMAIN_ID" \
--region "$REGION" \
--name "$PROJECT_NAME" \
--description "New project with tags" \
--project-profile-id "$PROJECT_PROFILE_ID" \
--resource-tags '{
"CostCenter": "456"
}'
Cập nhật dự án hiện có với các thẻ tài nguyên dự án
Đối với các dự án hiện có liên kết với hồ sơ dự án, bạn phải cập nhật dự án để các thẻ mới được áp dụng.
- Cập nhật dự án bằng cách sử dụng lệnh CLI ví dụ sau.
- Trong trường hợp này, một giá trị có thể chỉnh sửa cần được cập nhật và một thẻ mới được thêm vào. Thẻ
CostCentersẽ có giá trị mặc định của nó bị ghi đè thành"789"và thẻACME-Department = Financemới sẽ được thêm vào.
aws datazone update-project \
--domain-identifier "$DOMAIN_ID" \
--identifier "$PROJECT_ID" \
--project-profile-version "latest" \
--region "$REGION" \
--resource-tags '{
"CostCenter": "789",
"ACME-Department": "Finance"
}'
Các thẻ cấp dự án (những thẻ không được cấu hình từ hồ sơ dự án) cần được truyền trong quá trình cập nhật dự án để được giữ lại. Đối với các thẻ có isValueEditable = true được cấu hình từ hồ sơ dự án, bất kỳ ghi đè nào đã được đặt trước đó cần được áp dụng hoặc giá trị sẽ trở về mặc định từ hồ sơ dự án.
Xác thực tài nguyên đã được gắn thẻ
Xác thực rằng các thẻ được đặt chính xác. Một tài nguyên ví dụ được tạo bởi dự án là vai trò IAM của dự án. Xem các thẻ cho vai trò này sẽ hiển thị các thẻ được cấu hình từ hồ sơ dự án.
- Mở SageMaker Unified Studio để lấy vai trò dự án từ phần Project details của dự án. Tên vai trò bắt đầu bằng
datazone_usr_role_. - Mở bảng điều khiển IAM.
- Trong ngăn điều hướng, chọn Roles.
- Tìm kiếm vai trò IAM của dự án.
- Chọn tab Tags

Kết luận
Trong bài đăng này, chúng tôi đã thảo luận về các trường hợp sử dụng liên quan đến gắn thẻ từ khách hàng và hướng dẫn cách bắt đầu với các thẻ tùy chỉnh trong Amazon SageMaker để đặt thẻ trên các tài nguyên được tạo bởi dự án. Bằng cách cung cấp cho quản trị viên một cách để cấu hình hồ sơ dự án với các cấu hình thẻ tiêu chuẩn hóa, giờ đây bạn có thể giúp đảm bảo các thực hành gắn thẻ nhất quán trên tất cả các dự án SageMaker Unified Studio trong khi vẫn duy trì tuân thủ SCP. Tính năng này giải quyết hai nhu cầu quan trọng của khách hàng: thực thi các tiêu chuẩn gắn thẻ của tổ chức thông qua các cơ chế quản trị tự động và cho phép báo cáo phân bổ chi phí chính xác trên các triển khai đa dịch vụ.
Để tìm hiểu thêm, hãy truy cập Amazon SageMaker, sau đó bắt đầu với thẻ tài nguyên dự án.
Về tác giả

David là Giám đốc Sản phẩm Kỹ thuật Cấp cao của Amazon SageMaker tại AWS. Anh tập trung vào việc cải thiện khả năng quản trị và quản lý cần thiết để khách hàng hỗ trợ các hệ thống phân tích của họ. Anh đam mê giúp khách hàng nhận ra giá trị lớn nhất từ dữ liệu của họ một cách an toàn và có quản lý.

Rohit là Kỹ sư Phần mềm Cấp cao tại AWS. Anh làm việc trong việc xây dựng và mở rộng các dịch vụ trong Amazon SageMaker. Anh tập trung vào việc phát triển các hệ thống phân tán mạnh mẽ và có khả năng mở rộng, đồng thời đam mê giải quyết các thách thức kỹ thuật phức tạp để mang lại giá trị tối đa cho khách hàng.

Ahan là Kỹ sư Phát triển Phần mềm tại AWS. Anh làm việc trên lớp dữ liệu và quản trị cốt lõi đằng sau Amazon SageMaker. Anh đam mê xây dựng các hệ thống phân tán có khả năng mở rộng và tối ưu hóa quy trình làm việc của nhà phát triển. Khi không viết mã, bạn có thể thấy anh ấy đi du lịch hoặc đi bộ đường dài trên các con đường mòn ở Tây Bắc Thái Bình Dương.