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 agen ECS untuk mendaftarkan instance dengan cluster dan berkomunikasi dengan layanan ECS.
penting
Jika Anda menggunakan Instans Terkelola Amazon ECS dengan kebijakan AmazonECSInfrastructureRolePolicyForManagedInstances terkelola, nama peran instans harus dimulai dengan. ecsInstanceRole Kebijakan mencakuparn:aws:iam::*:role/ecsInstanceRole*, iam:PassRole sehingga nama yang tidak cocok menyebabkan kesalahan otorisasi saat peluncuran tugas. Ini biasa terjadi CloudFormation ketika Anda menghilangkanRoleName, karena CloudFormation otomatis menghasilkan nama seperti. MyStack-InstanceRole-ABC123
Jika Anda menggunakan kebijakan peran infrastruktur kustom, peran instance dapat memiliki nama apa pun selama kebijakan Anda menyertakan iam:PassRole hibah yang menargetkan ARN peran instance.
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
ecsInstanceRolebernama menggunakan kebijakan kepercayaan yang Anda buat di langkah sebelumnya.aws iam create-role \ --role-name ecsInstanceRole \ --assume-role-policy-document file://ecsInstanceRole-trust-policy.json -
Lampirkan
AmazonECSInstanceRolePolicyForManagedInstanceskebijakan yang AWS dikelola 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 paling sedikit dan menetapkan izin Anda sendiri, Anda dapat menambahkan izin berikut untuk membantu mengatasi masalah terkait tugas dengan Instans Terkelola Amazon ECS:
ecs:StartTelemetrySessionecs:PutSystemLogEvents
Anda juga dapat menggunakan alur 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 Anda membuat file, Anda harus memberikan izin pengguna Anda untuk meneruskan peran 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 yang AWS dikelola atau kebijakan khusus.
Opsi 1: Gunakan konvensi ecsInstanceRole penamaan (disarankan)
Bila Anda menggunakan kebijakan infrastruktur AWS-managed, Anda harus secara eksplisit menyetel RoleName ke nilai yang dimulai dengan. ecsInstanceRole Jika Anda menghilangkannyaRoleName, CloudFormation
buat nama yang tidak cocok dengan iam:PassRole kondisi kebijakan terkelola secara otomatis, 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 dimulaiecsInstanceRole, Anda harus menambahkan kebijakan sebaris pada peran infrastruktur yang diberikan iam:PassRole untuk peran instance.
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 yang ResourceInitializationError menyebutkaniam:PassRole, verifikasi bahwa nama peran instans Anda dimulai denganecsInstanceRole. Anda dapat memeriksa nama yang dibuat secara otomatis di CloudFormation konsol di bawah tab Sumber Daya tumpukan Anda. Jika namanya tidak cocok, baik:
-
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.