Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan kebijakan berbasis identitas (kebijakan IAM) untuk AWS Control Tower
Topik ini memberikan contoh kebijakan berbasis identitas yang menunjukkan bagaimana administrator akun dapat melampirkan kebijakan izin ke identitas IAM (yaitu, pengguna, grup, dan peran) dan dengan demikian memberikan izin untuk melakukan operasi pada sumber daya AWS Control Tower.
penting
Kami menyarankan Anda terlebih dahulu meninjau topik pengantar yang menjelaskan konsep dasar dan opsi yang tersedia bagi Anda untuk mengelola akses ke sumber daya AWS Control Tower Anda. Untuk informasi selengkapnya, lihat Ikhtisar mengelola izin akses ke sumber daya AWS Control Tower Anda.
AWS ControlTowerAdmin peran
Peran ini memberi AWS Control Tower akses ke infrastruktur yang penting untuk mempertahankan landing zone. AWS ControlTowerAdmin
Peran tersebut membutuhkan kebijakan terkelola terlampir dan kebijakan kepercayaan peran untuk peran IAM. Kebijakan kepercayaan peran adalah kebijakan berbasis sumber daya, yang menentukan prinsip mana yang dapat mengambil peran tersebut.
Berikut contoh cuplikan untuk kebijakan kepercayaan peran ini:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "controltower.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Untuk membuat peran ini dari AWS CLI, dan memasukkannya ke dalam file bernamatrust.json
, berikut adalah contoh perintah CLI:
aws iam create-role --role-name AWSControlTowerAdmin --path /service-role/ --assume-role-policy-document file://trust.json
Peran ini membutuhkan dua kebijakan IAM.
Kebijakan inline, misalnya:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:DescribeAvailabilityZones", "Resource": "*" } ] }
Kebijakan terkelola yang mengikuti, yaitu
AWS ControlTowerServiceRolePolicy
.
AWS ControlTowerServiceRolePolicy
AWS ControlTowerServiceRolePolicyIni adalah kebijakan AWS terkelola yang mendefinisikan izin untuk membuat dan mengelola sumber daya AWS Control Tower, seperti AWS CloudFormation stackset dan instance tumpukan, file AWS CloudTrail log, agregator konfigurasi untuk AWS Control Tower, AWS Organizations serta akun dan unit organisasi (OU) yang diatur oleh AWS Control Tower.
Pembaruan kebijakan terkelola ini dirangkum dalam tabel,Kebijakan terkelola untuk AWS Control Tower.
Untuk informasi selengkapnya, lihat AWSControlTowerServiceRolePolicy
di Panduan Referensi Kebijakan Terkelola AWS.
Nama Kebijakan Terkelola: AWS ControlTowerServiceRolePolicy
Artefak JSON untuk AWS ControlTowerServiceRolePolicy
adalah sebagai berikut:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:CreateStack", "cloudformation:CreateStackInstances", "cloudformation:CreateStackSet", "cloudformation:DeleteStack", "cloudformation:DeleteStackInstances", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackInstance", "cloudformation:DescribeStacks", "cloudformation:DescribeStackSet", "cloudformation:DescribeStackSetOperation", "cloudformation:ListStackInstances", "cloudformation:UpdateStack", "cloudformation:UpdateStackInstances", "cloudformation:UpdateStackSet" ], "Resource": [ "arn:aws:cloudformation:*:*:type/resource/AWS-IAM-Role" ] }, { "Effect": "Allow", "Action": [ "account:EnableRegion", "account:ListRegions", "account:GetRegionOptStatus" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "cloudformation:CreateStack", "cloudformation:CreateStackInstances", "cloudformation:CreateStackSet", "cloudformation:DeleteStack", "cloudformation:DeleteStackInstances", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackInstance", "cloudformation:DescribeStacks", "cloudformation:DescribeStackSet", "cloudformation:DescribeStackSetOperation", "cloudformation:GetTemplate", "cloudformation:ListStackInstances", "cloudformation:UpdateStack", "cloudformation:UpdateStackInstances", "cloudformation:UpdateStackSet" ], "Resource": [ "arn:aws:cloudformation:*:*:stack/AWSControlTower*/*", "arn:aws:cloudformation:*:*:stack/StackSet-AWSControlTower*/*", "arn:aws:cloudformation:*:*:stackset/AWSControlTower*:*", "arn:aws:cloudformation:*:*:stackset-target/AWSControlTower*/*" ] }, { "Effect": "Allow", "Action": [ "cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetTrailStatus", "cloudtrail:StartLogging", "cloudtrail:StopLogging", "cloudtrail:UpdateTrail", "cloudtrail:PutEventSelectors", "logs:CreateLogStream", "logs:PutLogEvents", "logs:PutRetentionPolicy" ], "Resource": [ "arn:aws:logs:*:*:log-group:aws-controltower/CloudTrailLogs:*", "arn:aws:cloudtrail:*:*:trail/aws-controltower*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::aws-controltower*/*" ] }, { "Effect": "Allow", "Action": [ "sts:AssumeRole" ], "Resource": [ "arn:aws:iam::*:role/AWSControlTowerExecution", "arn:aws:iam::*:role/AWSControlTowerBlueprintAccess" ] }, { "Effect": "Allow", "Action": [ "cloudtrail:DescribeTrails", "ec2:DescribeAvailabilityZones", "iam:ListRoles", "logs:CreateLogGroup", "logs:DescribeLogGroups", "organizations:CreateAccount", "organizations:DescribeAccount", "organizations:DescribeCreateAccountStatus", "organizations:DescribeOrganization", "organizations:DescribeOrganizationalUnit", "organizations:DescribePolicy", "organizations:ListAccounts", "organizations:ListAccountsForParent", "organizations:ListAWSServiceAccessForOrganization", "organizations:ListChildren", "organizations:ListOrganizationalUnitsForParent", "organizations:ListParents", "organizations:ListPoliciesForTarget", "organizations:ListTargetsForPolicy", "organizations:ListRoots", "organizations:MoveAccount", "servicecatalog:AssociatePrincipalWithPortfolio" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:GetRole", "iam:GetUser", "iam:ListAttachedRolePolicies", "iam:GetRolePolicy" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::*:role/service-role/AWSControlTowerStackSetRole", "arn:aws:iam::*:role/service-role/AWSControlTowerCloudTrailRole", "arn:aws:iam::*:role/service-role/AWSControlTowerConfigAggregatorRoleForOrganizations" ] }, { "Effect": "Allow", "Action": [ "config:DeleteConfigurationAggregator", "config:PutConfigurationAggregator", "config:TagResource" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/aws-control-tower": "managed-by-control-tower" } } }, { "Effect": "Allow", "Action": [ "organizations:EnableAWSServiceAccess", "organizations:DisableAWSServiceAccess" ], "Resource": "*", "Condition": { "StringLike": { "organizations:ServicePrincipal": [ "config.amazonaws.com", "cloudtrail.amazonaws.com" ] } } }, { "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "*", "Condition": { "StringEquals": { "iam:AWSServiceName": "cloudtrail.amazonaws.com" } } } ] }
Kebijakan kepercayaan peran:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "controltower.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
Kebijakan inline adalahAWSControlTowerAdminPolicy
:
{ "Version": "2012-10-17", "Statement": [ { "Action": "ec2:DescribeAvailabilityZones", "Resource": "*", "Effect": "Allow" } ] }
AWS ControlTowerStackSetRole
AWS CloudFormation mengasumsikan peran ini untuk menerapkan set tumpukan di akun yang dibuat oleh AWS Control Tower. Kebijakan Inline:
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "sts:AssumeRole" ], "Resource": [ "arn:aws:iam::*:role/AWSControlTowerExecution" ], "Effect": "Allow" } ] }
Kebijakan kepercayaan
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "cloudformation.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
AWS ControlTowerCloudTrailRole
AWS Control Tower memungkinkan CloudTrail sebagai praktik terbaik dan menyediakan peran ini CloudTrail. CloudTrailmengasumsikan peran ini untuk membuat dan menerbitkan CloudTrail log. Kebijakan Inline:
{ "Version": "2012-10-17", "Statement": [ { "Action": "logs:CreateLogStream", "Resource": "arn:aws:logs:*:*:log-group:aws-controltower/CloudTrailLogs:*", "Effect": "Allow" }, { "Action": "logs:PutLogEvents", "Resource": "arn:aws:logs:*:*:log-group:aws-controltower/CloudTrailLogs:*", "Effect": "Allow" } ] }
Kebijakan kepercayaan
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
AWSControlTowerBlueprintAccess persyaratan peran
AWS Control Tower mengharuskan Anda untuk membuat AWSControlTowerBlueprintAccess
peran di akun hub cetak biru yang ditentukan, dalam organisasi yang sama.
Nama peran
Nama peran harusAWSControlTowerBlueprintAccess
.
Kebijakan kepercayaan peran
Peran harus diatur untuk mempercayai prinsip-prinsip berikut:
-
Prinsipal yang menggunakan AWS Control Tower di akun manajemen.
-
AWSControlTowerAdmin
Peran dalam akun manajemen.
Contoh berikut menunjukkan kebijakan kepercayaan paling tidak memiliki hak istimewa. Saat Anda membuat kebijakan sendiri, ganti istilah YourManagementAccountId
dengan ID acccount aktual akun manajemen AWS Control Tower Anda, dan ganti istilah tersebut YourControlTowerUserRole
dengan pengenal peran IAM untuk akun manajemen Anda.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::
YourManagementAccountId
:role/service-role/AWSControlTowerAdmin", "arn:aws:iam::YourManagementAccountId
:role/YourControlTowerUserRole
" ] }, "Action": "sts:AssumeRole", "Condition": {} } ] }
Izin peran
Anda diminta untuk melampirkan kebijakan yang dikelola AWSServiceCatalogAdminFullAccesske peran tersebut.
AWSServiceRoleForAWSControlTower
Peran ini memberi AWS Control Tower akses ke akun Arsip Log, akun Audit, dan akun anggota, untuk operasi yang penting untuk mempertahankan landing zone, seperti memberi tahu Anda tentang sumber daya yang hanyut.
AWSServiceRoleForAWSControlTower
Peran tersebut membutuhkan kebijakan terkelola terlampir dan kebijakan kepercayaan peran untuk peran IAM.
Kebijakan terkelola untuk peran ini: AWSControlTowerAccountServiceRolePolicy
Kebijakan kepercayaan peran:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "controltower.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
AWSControlTowerAccountServiceRolePolicy
Kebijakan yang AWS dikelola ini memungkinkan AWS Control Tower memanggil AWS layanan yang menyediakan konfigurasi akun otomatis dan tata kelola terpusat atas nama Anda.
Kebijakan ini berisi izin minimum AWS Control Tower untuk menerapkan penerusan AWS Security Hub temuan untuk sumber daya yang dikelola oleh kontrol Security Hub yang merupakan bagian dari Standar yang dikelola Layanan Security Hub: AWS Control Tower, dan mencegah perubahan yang membatasi kemampuan mengelola akun pelanggan. Ini adalah bagian dari proses deteksi AWS Security Hub drift latar belakang yang tidak secara langsung diprakarsai oleh pelanggan.
Kebijakan ini memberikan izin untuk membuat EventBridge aturan Amazon, khususnya untuk kontrol Security Hub, di setiap akun anggota, dan aturan ini harus menentukan EventPattern persisnya. Selain itu, aturan hanya dapat beroperasi berdasarkan aturan yang dikelola oleh prinsipal layanan kami.
Prinsipal layanan: controltower.amazonaws.com
Artefak JSON untuk AWSControlTowerAccountServiceRolePolicy
adalah sebagai berikut:
{ "Version": "2012-10-17", "Statement": [ { //For creating the managed rule "Sid": "AllowPutRuleOnSpecificSourcesAndDetailTypes", "Effect": "Allow", "Action": "events:PutRule", "Resource": "arn:aws:events:*:*:rule/*ControlTower*", "Condition": { "ForAnyValue:StringEquals": { "events:source": "aws.securityhub" }, "Null": { "events:detail-type": "false" }, "StringEquals": { "events:ManagedBy": "controltower.amazonaws.com", "events:detail-type": "Security Hub Findings - Imported" } } }, // Other operations to manage the managed rule { "Sid": "AllowOtherOperationsOnRulesManagedByControlTower", "Effect": "Allow", "Action": [ "events:DeleteRule", "events:EnableRule", "events:DisableRule", "events:PutTargets", "events:RemoveTargets" ], "Resource": "arn:aws:events:*:*:rule/*ControlTower*", "Condition": { "StringEquals": { "events:ManagedBy": "controltower.amazonaws.com" } } }, // More managed rule permissions { "Sid": "AllowDescribeOperationsOnRulesManagedByControlTower", "Effect": "Allow", "Action": [ "events:DescribeRule", "events:ListTargetsByRule" ], "Resource": "arn:aws:events:*:*:rule/*ControlTower*" }, // Add permission to publish the security notifications to SNS { "Sid": "AllowControlTowerToPublishSecurityNotifications", "Effect": "Allow", "Action": "sns:publish", "Resource": "arn:aws:sns:*:*:aws-controltower-AggregateSecurityNotifications", "Condition": { "StringEquals": { "aws:PrincipalAccount": "${aws:ResourceAccount}" } } }, // For drift verification { "Sid": "AllowActionsForSecurityHubIntegration", "Effect": "Allow", "Action": [ "securityhub:DescribeStandardsControls", "securityhub:GetEnabledStandards" ], "Resource": "arn:aws:securityhub:*:*:hub/default" } ] }
Pembaruan kebijakan terkelola ini dirangkum dalam tabel,Kebijakan terkelola untuk AWS Control Tower.