Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Profil instans Instans Terkelola Amazon ECS
Profil instans adalah kontainer IAM yang memegang persis satu peran IAM dan memungkinkan Instans Terkelola Amazon ECS untuk mengambil peran tersebut dengan aman. Profil instans berisi peran instans yang diasumsikan oleh agen ECS untuk mendaftarkan instans dengan cluster dan berkomunikasi dengan layanan ECS.
penting
Jika Anda menggunakan Instans Terkelola Amazon ECS dengan kebijakan AmazonECSInfrastructureRolePolicyForManagedInstances terkelola, nama peran instans harus dimulai denganecsInstanceRole. Kebijakan mencakup iam:PassRole kearn:aws:iam::*:role/ecsInstanceRole*, sehingga nama yang tidak cocok menyebabkan kesalahan otorisasi saat peluncuran tugas. Ini umum terjadi CloudFormation ketika Anda menghilangkanRoleName, karena secara CloudFormation otomatis menghasilkan nama seperti. MyStack-InstanceRole-ABC123
Jika Anda menggunakan kebijakan peran infrastruktur khusus sebagai gantinya, peran instans dapat memiliki nama apa pun selama kebijakan Anda menyertakan iam:PassRole hibah yang menargetkan peran instans ARN.
Buat peran dengan kebijakan kepercayaan
Ganti semua user input dengan informasi Anda sendiri.
-
Buat file bernama
ecsInstanceRole-trust-policy.jsonyang berisi kebijakan kepercayaan yang akan digunakan untuk peran IAM. File tersebut harus berisi hal berikut: -
Gunakan AWS CLI perintah berikut untuk membuat peran bernama
ecsInstanceRoledengan menggunakan kebijakan kepercayaan yang Anda buat pada langkah sebelumnya.aws iam create-role \ --role-name ecsInstanceRole \ --assume-role-policy-document file://ecsInstanceRole-trust-policy.json -
Lampirkan AWS
AmazonECSInstanceRolePolicyForManagedInstanceskebijakan terkelola keecsInstanceRoleperan.aws iam attach-role-policy \ --role-name ecsInstanceRole \ --policy-arn arn:aws:iam::aws:policy/AmazonECSInstanceRolePolicyForManagedInstancescatatan
Jika Anda memilih untuk menerapkan izin hak istimewa terkecil dan menentukan izin Anda sendiri sebagai gantinya, Anda dapat menambahkan izin berikut untuk membantu memecahkan masalah terkait tugas dengan Instans Terkelola Amazon ECS:
ecs:StartTelemetrySessionecs:PutSystemLogEvents
Anda juga dapat menggunakan al ur kerja kebijakan kepercayaan kustom konsol IAM untuk membuat peran. Untuk informasi selengkapnya, lihat Membuat peran menggunakan kebijakan kepercayaan khusus (konsol) di Panduan Pengguna IAM.
Setelah membuat file, Anda harus memberikan izin pengguna untuk meneruskan peran tersebut ke Amazon ECS.
Buat profil instance menggunakan AWS CLI
Setelah membuat peran, buat profil instance menggunakan AWS CLI:
aws iam create-instance-profile --instance-profile-name ecsInstanceRole
Tambahkan peran ke profil instance:
aws iam add-role-to-instance-profile \ --instance-profile-name ecsInstanceRole \ --role-name ecsInstanceRole
Verifikasi profil berhasil dibuat:
aws iam get-instance-profile --instance-profile-name ecsInstanceRole
Buat profil instance menggunakan CloudFormation
Anda dapat menggunakan AWS CloudFormation untuk membuat peran instance dan profil instance. Pilih salah satu opsi berikut berdasarkan apakah Anda menggunakan kebijakan infrastruktur AWS yang dikelola atau kebijakan kustom.
Opsi 1: Gunakan konvensi InstanceRole penamaan ecs (disarankan)
Saat Anda menggunakan kebijakan infrastruktur AWS-managed, Anda harus secara eksplisit RoleName menetapkan nilai yang dimulai denganecsInstanceRole. Jika Anda menghilangkanRoleName, CloudFormation
otomatis membuat nama yang tidak sesuai dengan iam:PassRole kondisi kebijakan terkelola, dan tugas gagal diluncurkan.
Resources: EcsInstanceRole: Type: AWS::IAM::Role Properties: RoleName: ecsInstanceRole AssumeRolePolicyDocument: Version: "2012-10-17" Statement: - Effect: Allow Principal: Service: ec2.amazonaws.com Action: sts:AssumeRole ManagedPolicyArns: - arn:aws:iam::aws:policy/AmazonECSInstanceRolePolicyForManagedInstances EcsInstanceProfile: Type: AWS::IAM::InstanceProfile Properties: InstanceProfileName: ecsInstanceRole Roles: - !Ref EcsInstanceRole
Opsi 2: Gunakan nama peran khusus
Jika Anda lebih suka membiarkan CloudFormation membuat nama peran, atau Anda menggunakan nama kustom yang tidak dimulai denganecsInstanceRole, Anda harus menambahkan kebijakan sebaris pada peran infrastruktur yang diberikan iam:PassRole untuk peran instans.
Resources: EcsInstanceRole: Type: AWS::IAM::Role Properties: # No RoleName — CFN auto-generates AssumeRolePolicyDocument: Version: "2012-10-17" Statement: - Effect: Allow Principal: Service: ec2.amazonaws.com Action: sts:AssumeRole ManagedPolicyArns: - arn:aws:iam::aws:policy/AmazonECSInstanceRolePolicyForManagedInstances EcsInstanceProfile: Type: AWS::IAM::InstanceProfile Properties: Roles: - !Ref EcsInstanceRole EcsInfrastructureRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Version: "2012-10-17" Statement: - Effect: Allow Principal: Service: ecs.amazonaws.com Action: sts:AssumeRole ManagedPolicyArns: - arn:aws:iam::aws:policy/AmazonECSInfrastructureRolePolicyForManagedInstances Policies: - PolicyName: PassInstanceRoleToEC2 PolicyDocument: Version: "2012-10-17" Statement: - Effect: Allow Action: iam:PassRole Resource: !GetAtt EcsInstanceRole.Arn Condition: StringLike: iam:PassedToService: "ec2.*"
Pemecahan masalah
Tugas gagal dengan iam: kesalahan PassRole otorisasi
Jika tugas Anda gagal dengan menyebutkan ResourceInitializationError ituiam:PassRole, verifikasi bahwa nama peran instans Anda dimulai denganecsInstanceRole. Anda dapat memeriksa nama yang dibuat secara otomatis di CloudFormation konsol di bawah tab Resources tumpukan Anda. Jika namanya tidak cocok, salah satunya:
-
Tambahkan
RoleName: ecsInstanceRolekeAWS::IAM::Rolesumber daya Anda. -
Tambahkan kebijakan
iam:PassRoleinline eksplisit ke peran infrastruktur Anda. Untuk informasi selengkapnya, lihat Opsi 2: Gunakan nama peran khusus.