View a markdown version of this page

Cross-service pencegahan wakil yang bingung - AWS Transfer Family

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Cross-service pencegahan wakil yang bingung

Masalah "confused deputy" adalah masalah keamanan di mana entitas yang tidak memiliki izin untuk melakukan tindakan dapat memengaruhi entitas yang memiliki hak akses lebih tinggi untuk melakukan tindakan. Pada tahun AWS, peniruan lintas layanan dapat mengakibatkan masalah wakil yang membingungkan. Cross-service peniruan diri dapat terjadi ketika satu layanan (layanan panggilan) memanggil layanan lain (layanan yang disebut). Layanan panggilan dapat dimanipulasi untuk menggunakan izinnya untuk bertindak pada sumber daya pelanggan lain dengan cara yang seharusnya tidak memiliki izin untuk mengakses. Untuk mencegah hal ini, AWS menyediakan alat yang membantu Anda melindungi data untuk semua layanan dengan principal layanan yang telah diberi akses ke sumber daya di akun Anda. Untuk penjelasan rinci tentang masalah ini, lihat masalah wakil yang membing ungkan di Panduan Pengguna IAM.

Sebaiknya gunakan aws:SourceArn dan kunci konteks kondisi aws:SourceAccount global dalam kebijakan sumber daya untuk membatasi izin yang AWS dimiliki Keluarga Transfer untuk sumber daya. Jika Anda menggunakan kedua kunci konteks kondisi global, aws:SourceAccount nilai dan akun dalam aws:SourceArn nilai harus menggunakan ID akun yang sama saat digunakan dalam pernyataan kebijakan yang sama.

Cara paling efektif untuk melindungi dari masalah wakil yang membingungkan adalah dengan menggunakan Nama Sumber Daya Amazon (ARN) yang tepat dari sumber daya yang ingin Anda izinkan. Jika Anda menentukan beberapa sumber daya, gunakan kunci kondisi konteks aws:SourceArn global dengan karakter wildcard (*) untuk bagian ARN yang tidak diketahui. Misalnya, arn:aws:transfer::region::account-id:server/*.

AWS Transfer Family menggunakan jenis peran berikut:

  • Peran pengguna — Memungkinkan pengguna yang dikelola layanan untuk mengakses sumber daya Transfer Family yang diperlukan. AWS Transfer Family mengambil peran ini dalam konteks ARN pengguna Transfer Family.

  • Peran akses — Menyediakan akses hanya ke file Amazon S3 yang sedang ditransfer. Untuk transfer AS2 masuk, peran akses menggunakan Nama Sumber Daya Amazon (ARN) untuk perjanjian. Untuk transfer AS2 keluar, peran akses menggunakan ARN untuk konektor.

  • Peran pem anggilan — Untuk digunakan dengan Amazon API Gateway sebagai penyedia identitas khusus server. Transfer Family mengambil peran ini dalam konteks server Transfer Family ARN.

  • Peran logging — Digunakan untuk mencatat entri ke Amazon CloudWatch. Transfer Family menggunakan peran ini untuk mencatat detail keberhasilan dan kegagalan bersama dengan informasi tentang transfer file. Transfer Family mengambil peran ini dalam konteks server Transfer Family ARN. Untuk transfer AS2 keluar, peran logging menggunakan konektor ARN.

  • Peran eksekusi - Memungkinkan pengguna Transfer Family untuk memanggil dan meluncurkan alur kerja. Transfer Family mengambil peran ini dalam konteks alur kerja Transfer Family ARN.

Untuk informasi selengkapnya, lihat Kebijakan dan izin di IAM dalam Panduan Pengguna IAM.

catatan

Dalam contoh berikut, ganti masing-masing user input placeholder dengan informasi Anda sendiri.

catatan

Dalam contoh kami, kami menggunakan keduanya ArnLike danArnEquals. Mereka secara fungsional identik, dan oleh karena itu Anda dapat menggunakannya ketika Anda menyusun kebijakan Anda. Dokumentasi Transfer Family digunakan ArnLike ketika kondisi berisi karakter wildcard, dan ArnEquals untuk menunjukkan kondisi kecocokan yang tepat.

AWS Transfer Peran pengguna keluarga lintas layanan pencegahan wakil yang membingungkan

Kebijakan contoh berikut memungkinkan setiap pengguna server di akun untuk mengambil peran tersebut.

{ "Version":"2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "transfer.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnLike": { "aws:SourceArn": "arn:aws:transfer:us-east-1:123456789012:user/*" } } } ] }

Kebijakan contoh berikut memungkinkan setiap pengguna server tertentu untuk mengambil peran tersebut.

{ "Version":"2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "transfer.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnEquals": { "aws:SourceArn": "arn:aws:transfer:us-east-1:123456789012:user/server-id/*" } } } ] }

Kebijakan contoh berikut memungkinkan pengguna tertentu dari server tertentu untuk mengambil peran tersebut.

{ "Version":"2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "transfer.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:transfer:us-east-1:123456789012:user/server-id/user-name" } } } ] }

AWS Transfer Peran alur kerja keluarga lintas layanan pencegahan wakil yang membingungkan

Kebijakan contoh berikut memungkinkan alur kerja apa pun di akun untuk mengambil peran tersebut.

{ "Version":"2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "transfer.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnLike": { "aws:SourceArn": "arn:aws:transfer:us-west-2:111122223333:workflow/*" } } } ] }

Kebijakan contoh berikut memungkinkan alur kerja tertentu untuk mengambil peran tersebut.

{ "Version":"2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "transfer.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:transfer:us-west-2:111122223333:workflow/workflow-id" } } } ] }

AWS Transfer Peran konektor keluarga lintas layanan pencegahan wakil yang membingungkan

Kebijakan contoh berikut memungkinkan konektor apa pun di akun untuk mengambil peran tersebut.

{ "Version":"2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "transfer.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnLike": { "aws:SourceArn": "arn:aws:transfer:us-east-1:123456789012:connector/*" } } } ] }

Kebijakan contoh berikut memungkinkan konektor tertentu untuk mengambil peran tersebut.

{ "Version":"2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "transfer.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:transfer:us-east-1:123456789012:connector/connector-id" } } } ] }

AWS Transfer Pencatatan keluarga dan peran pemanggilan lintas layanan pencegahan wakil yang membingungkan

catatan

Contoh berikut dapat digunakan dalam peran logging dan pemanggilan.

Dalam contoh ini, Anda dapat menghapus detail ARN untuk alur kerja jika server Anda tidak memiliki alur kerja yang melekat padanya.

logging/invocation Kebijakan contoh berikut memungkinkan server (dan alur kerja) apa pun di akun untuk mengambil peran tersebut.

{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowAllServersWithWorkflowAttached", "Effect": "Allow", "Principal": { "Service": "transfer.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnLike": { "aws:SourceArn": [ "arn:aws:transfer:us-west-2:111122223333:server/*", "arn:aws:transfer:us-west-2:111122223333:workflow/*" ] } } } ] }

logging/invocation Kebijakan contoh berikut memungkinkan server tertentu (dan alur kerja) untuk mengambil peran tersebut.

{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowSpecificServerWithWorkflowAttached", "Effect": "Allow", "Principal": { "Service": "transfer.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnEquals": { "aws:SourceArn": [ "arn:aws:transfer:us-west-2:111122223333:server/server-id", "arn:aws:transfer:us-west-2:111122223333:workflow/workflow-id" ] } } } ] }